mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Migrate notification models to generated by grafnaa-app-sdk (#95430)
* create notifications module and generate models * switch template group to app models * switch time intervals to use app models * switch receiver to use app models * switch routing tree to use app models * move schema registration to resource packages * fix package names to match app * fix codeowners * fix UI to use metadata.name instead of uid * update dockerfile * move generated models to pkg * remove provenance from field selector * move client factories to test files * rename GenericClient to TypedClient
This commit is contained in:
parent
c4e19f3570
commit
2d386e6704
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
@ -66,11 +66,10 @@
|
|||||||
/scripts/go-workspace @grafana/grafana-app-platform-squad
|
/scripts/go-workspace @grafana/grafana-app-platform-squad
|
||||||
/hack/ @grafana/grafana-app-platform-squad
|
/hack/ @grafana/grafana-app-platform-squad
|
||||||
|
|
||||||
/apps/alerting/ @grafana/alerting-backend
|
/apps/alerting/ @grafana/alerting-backend @grafana/alerting-frontend
|
||||||
/apps/playlist/ @grafana/grafana-app-platform-squad
|
/apps/playlist/ @grafana/grafana-app-platform-squad
|
||||||
/pkg/api/ @grafana/grafana-backend-group
|
/pkg/api/ @grafana/grafana-backend-group
|
||||||
/pkg/apis/ @grafana/grafana-app-platform-squad
|
/pkg/apis/ @grafana/grafana-app-platform-squad
|
||||||
/pkg/apis/alerting_notifications @grafana/grafana-app-platform-squad @grafana/alerting-backend @grafana/alerting-frontend
|
|
||||||
/pkg/apis/query @grafana/grafana-datasources-core-services
|
/pkg/apis/query @grafana/grafana-datasources-core-services
|
||||||
/pkg/apis/userstorage @grafana/grafana-app-platform-squad @grafana/plugins-platform-backend
|
/pkg/apis/userstorage @grafana/grafana-app-platform-squad @grafana/plugins-platform-backend
|
||||||
/pkg/bus/ @grafana/grafana-search-and-storage
|
/pkg/bus/ @grafana/grafana-search-and-storage
|
||||||
|
@ -69,6 +69,7 @@ COPY pkg/aggregator/go.* pkg/aggregator/
|
|||||||
COPY apps/playlist/go.* apps/playlist/
|
COPY apps/playlist/go.* apps/playlist/
|
||||||
COPY apps apps
|
COPY apps apps
|
||||||
COPY kindsv2 kindsv2
|
COPY kindsv2 kindsv2
|
||||||
|
COPY apps/alerting/notifications/go.* apps/alerting/notifications/
|
||||||
|
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
RUN if [[ "$BINGO" = "true" ]]; then \
|
RUN if [[ "$BINGO" = "true" ]]; then \
|
||||||
|
5
apps/alerting/common/constants.go
Normal file
5
apps/alerting/common/constants.go
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package common
|
||||||
|
|
||||||
|
const InternalPrefix = "grafana.com/"
|
||||||
|
const ProvenanceStatusAnnotationKey = InternalPrefix + "provenance"
|
||||||
|
const ProvenanceStatusNone = "none"
|
@ -1,4 +1,4 @@
|
|||||||
.PHONY: generate
|
.PHONY: generate
|
||||||
generate:
|
generate:
|
||||||
## --crdencoding none is needed to avoid infinite loop while generating recursive models'
|
## --crdencoding none is needed to avoid infinite loop while generating recursive models (see routingtree.cue)
|
||||||
grafana-app-sdk generate -c . -g ./apis --crdencoding none
|
grafana-app-sdk generate -g ./pkg/apis --crdencoding none --nomanifest --postprocess
|
||||||
|
@ -1 +0,0 @@
|
|||||||
module:"notifications"
|
|
95
apps/alerting/notifications/go.mod
Normal file
95
apps/alerting/notifications/go.mod
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
module github.com/grafana/grafana/apps/alerting/notifications
|
||||||
|
|
||||||
|
go 1.23.1
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/grafana/grafana-app-sdk v0.23.1
|
||||||
|
k8s.io/apimachinery v0.31.1
|
||||||
|
k8s.io/apiserver v0.31.1
|
||||||
|
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
|
github.com/blang/semver/v4 v4.0.0 // indirect
|
||||||
|
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
||||||
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
|
github.com/coreos/go-semver v0.3.1 // indirect
|
||||||
|
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
|
||||||
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||||
|
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
|
||||||
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
|
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
|
||||||
|
github.com/go-logr/logr v1.4.2 // indirect
|
||||||
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
|
github.com/go-openapi/jsonpointer v0.21.0 // indirect
|
||||||
|
github.com/go-openapi/jsonreference v0.21.0 // indirect
|
||||||
|
github.com/go-openapi/swag v0.23.0 // indirect
|
||||||
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
|
github.com/golang/protobuf v1.5.4 // indirect
|
||||||
|
github.com/google/btree v1.1.2 // indirect
|
||||||
|
github.com/google/gnostic-models v0.6.8 // indirect
|
||||||
|
github.com/google/go-cmp v0.6.0 // indirect
|
||||||
|
github.com/google/gofuzz v1.2.0 // indirect
|
||||||
|
github.com/google/pprof v0.0.0-20240711041743-f6c9dda6c6da // indirect
|
||||||
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
|
github.com/gorilla/websocket v1.5.3 // indirect
|
||||||
|
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
|
||||||
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 // indirect
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
|
||||||
|
github.com/jonboulle/clockwork v0.4.0 // indirect
|
||||||
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
|
github.com/klauspost/compress v1.17.9 // indirect
|
||||||
|
github.com/kylelemons/godebug v1.1.0 // indirect
|
||||||
|
github.com/mailru/easyjson v0.7.7 // indirect
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||||
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||||
|
github.com/onsi/gomega v1.34.1 // indirect
|
||||||
|
github.com/prometheus/client_golang v1.20.5 // indirect
|
||||||
|
github.com/prometheus/client_model v0.6.1 // indirect
|
||||||
|
github.com/prometheus/common v0.60.0 // indirect
|
||||||
|
github.com/prometheus/procfs v0.15.1 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
|
github.com/x448/float16 v0.8.4 // indirect
|
||||||
|
go.etcd.io/bbolt v1.3.10 // indirect
|
||||||
|
go.etcd.io/etcd/api/v3 v3.5.14 // indirect
|
||||||
|
go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect
|
||||||
|
go.etcd.io/etcd/client/v3 v3.5.14 // indirect
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect
|
||||||
|
go.opentelemetry.io/otel v1.31.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/metric v1.31.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/sdk v1.31.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/trace v1.31.0 // indirect
|
||||||
|
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
|
||||||
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
|
go.uber.org/zap v1.27.0 // indirect
|
||||||
|
golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e // indirect
|
||||||
|
golang.org/x/net v0.30.0 // indirect
|
||||||
|
golang.org/x/oauth2 v0.23.0 // indirect
|
||||||
|
golang.org/x/sys v0.26.0 // indirect
|
||||||
|
golang.org/x/term v0.25.0 // indirect
|
||||||
|
golang.org/x/text v0.19.0 // indirect
|
||||||
|
golang.org/x/time v0.6.0 // indirect
|
||||||
|
google.golang.org/genproto v0.0.0-20240820151423-278611b39280 // indirect
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect
|
||||||
|
google.golang.org/grpc v1.67.1 // indirect
|
||||||
|
google.golang.org/protobuf v1.35.1 // indirect
|
||||||
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
|
k8s.io/api v0.31.1 // indirect
|
||||||
|
k8s.io/client-go v0.31.1 // indirect
|
||||||
|
k8s.io/component-base v0.31.1 // indirect
|
||||||
|
k8s.io/klog/v2 v2.130.1 // indirect
|
||||||
|
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
|
||||||
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // indirect
|
||||||
|
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
|
||||||
|
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
|
||||||
|
sigs.k8s.io/yaml v1.4.0 // indirect
|
||||||
|
)
|
203
apps/alerting/notifications/go.sum
Normal file
203
apps/alerting/notifications/go.sum
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
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/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||||
|
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
|
||||||
|
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/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
|
||||||
|
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
|
||||||
|
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/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||||
|
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/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||||
|
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
|
||||||
|
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
|
||||||
|
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/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
|
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/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-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
|
||||||
|
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.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
|
||||||
|
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||||
|
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||||
|
github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU=
|
||||||
|
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
|
||||||
|
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
|
||||||
|
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
|
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||||
|
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
|
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-20240711041743-f6c9dda6c6da h1:xRmpO92tb8y+Z85iUOMOicpCfaYcv7o3Cg3wKrIpg8g=
|
||||||
|
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/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
|
||||||
|
github.com/grafana/grafana-app-sdk v0.23.1 h1:BRpUG0bA0oVxjthkmO2thuJBo3nbjaRSSmZJHw+mA8I=
|
||||||
|
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
|
||||||
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20191002090509-6af20e3a5340 h1:uGoIog/wiQHI9GAxXO5TJbT0wWKH3O9HhOJW1F9c3fY=
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
|
||||||
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys=
|
||||||
|
github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4=
|
||||||
|
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/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
|
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.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
|
||||||
|
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
|
||||||
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
|
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/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||||
|
github.com/modern-go/reflect2 v1.0.2/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/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
|
||||||
|
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
|
||||||
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||||
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
|
||||||
|
github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
|
||||||
|
github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
|
||||||
|
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
|
||||||
|
github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA=
|
||||||
|
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/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/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||||
|
github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=
|
||||||
|
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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
|
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||||
|
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE=
|
||||||
|
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/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
|
||||||
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
go.etcd.io/bbolt v1.3.10 h1:+BqfJTcCzTItrop8mq/lbzL8wSGtj94UO/3U31shqG0=
|
||||||
|
go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0=
|
||||||
|
go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ=
|
||||||
|
go.etcd.io/etcd/client/v2 v2.305.13 h1:RWfV1SX5jTU0lbCvpVQe3iPQeAHETWdOTb6pxhd77C8=
|
||||||
|
go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg=
|
||||||
|
go.etcd.io/etcd/pkg/v3 v3.5.13 h1:st9bDWNsKkBNpP4PR1MvM/9NqUPfvYZx/YXegsYEH8M=
|
||||||
|
go.etcd.io/etcd/raft/v3 v3.5.13 h1:7r/NKAOups1YnKcfro2RvGGo2PTuizF/xh26Z2CTAzA=
|
||||||
|
go.etcd.io/etcd/server/v3 v3.5.13 h1:V6KG+yMfMSqWt+lGnhFpP5z5dRUj1BDRJ5k1fQ9DFok=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 h1:yMkBS9yViCc7U7yeLzJPM2XizlfdVvBRSmsQDWu6qc0=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 h1:UP6IpuHFkUgOQL9FFQFrZ+5LiwhhYRbi7VZSIx6Nj5s=
|
||||||
|
go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
|
||||||
|
go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU=
|
||||||
|
go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
|
||||||
|
go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
|
||||||
|
go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
|
||||||
|
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
|
||||||
|
go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
|
||||||
|
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||||
|
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||||
|
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
|
||||||
|
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.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
|
||||||
|
golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e h1:I88y4caeGeuDQxgdoFPUq097j7kNfw6uvuiNxUBfcBk=
|
||||||
|
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/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-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.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
|
||||||
|
golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
|
||||||
|
golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=
|
||||||
|
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/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-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
|
||||||
|
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
|
golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24=
|
||||||
|
golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M=
|
||||||
|
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.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
|
||||||
|
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||||
|
golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
|
||||||
|
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.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.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ=
|
||||||
|
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/genproto v0.0.0-20240820151423-278611b39280 h1:oKt8r1ZvaPqBe3oeGTdyx1iNjuBS+VJcc9QdU1CD3d8=
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc=
|
||||||
|
google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E=
|
||||||
|
google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
|
||||||
|
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
|
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
|
||||||
|
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||||
|
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||||
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
|
||||||
|
gopkg.in/yaml.v2 v2.2.8/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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU=
|
||||||
|
k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI=
|
||||||
|
k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U=
|
||||||
|
k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
|
||||||
|
k8s.io/apiserver v0.31.1 h1:Sars5ejQDCRBY5f7R3QFHdqN3s61nhkpaX8/k1iEw1c=
|
||||||
|
k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0=
|
||||||
|
k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg=
|
||||||
|
k8s.io/component-base v0.31.1 h1:UpOepcrX3rQ3ab5NB6g5iP0tvsgJWzxTyAo20sgYSy8=
|
||||||
|
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-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
|
||||||
|
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
|
||||||
|
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
|
||||||
|
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||||
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY=
|
||||||
|
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
|
||||||
|
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
|
||||||
|
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
|
||||||
|
sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
|
||||||
|
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
|
||||||
|
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
|
1
apps/alerting/notifications/kinds/cue.mod/module.cue
Normal file
1
apps/alerting/notifications/kinds/cue.mod/module.cue
Normal file
@ -0,0 +1 @@
|
|||||||
|
module: "github.com/grafana/grafana/apps/alerting/notifications/kinds"
|
@ -19,7 +19,9 @@ receiver: {
|
|||||||
uid?: string
|
uid?: string
|
||||||
type: string
|
type: string
|
||||||
disableResolveMessage?: bool
|
disableResolveMessage?: bool
|
||||||
settings: bytes
|
settings: {
|
||||||
|
[string]: _
|
||||||
|
}
|
||||||
secureFields?: [string]: bool
|
secureFields?: [string]: bool
|
||||||
}
|
}
|
||||||
spec: {
|
spec: {
|
||||||
@ -27,6 +29,9 @@ receiver: {
|
|||||||
integrations : [...#Integration]
|
integrations : [...#Integration]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
selectableFields: [
|
||||||
|
"spec.title",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -10,7 +10,7 @@ templateGroup: {
|
|||||||
frontend: false
|
frontend: false
|
||||||
backend: true
|
backend: true
|
||||||
}
|
}
|
||||||
pluralName: "TemplatesGroups"
|
pluralName: "TemplateGroups"
|
||||||
current: "v0alpha1"
|
current: "v0alpha1"
|
||||||
versions: {
|
versions: {
|
||||||
"v0alpha1": {
|
"v0alpha1": {
|
||||||
@ -20,6 +20,9 @@ templateGroup: {
|
|||||||
content: string
|
content: string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
selectableFields: [
|
||||||
|
"spec.title",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -32,6 +32,9 @@ timeInterval: {
|
|||||||
time_intervals: [...#Interval]
|
time_intervals: [...#Interval]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
selectableFields: [
|
||||||
|
"spec.name",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,74 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/fields"
|
||||||
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana/apps/alerting/common"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (o *Receiver) GetProvenanceStatus() string {
|
||||||
|
if o == nil || o.Annotations == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
s, ok := o.Annotations[common.ProvenanceStatusAnnotationKey]
|
||||||
|
if !ok || s == "" {
|
||||||
|
return common.ProvenanceStatusNone
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetProvenanceStatus(status string) {
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string, 1)
|
||||||
|
}
|
||||||
|
if status == "" {
|
||||||
|
status = common.ProvenanceStatusNone
|
||||||
|
}
|
||||||
|
o.Annotations[common.ProvenanceStatusAnnotationKey] = status
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetAccessControl(action string) {
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string, 1)
|
||||||
|
}
|
||||||
|
o.Annotations[AccessControlAnnotation(action)] = "true"
|
||||||
|
}
|
||||||
|
|
||||||
|
// AccessControlAnnotation returns the key for the access control annotation for the given action.
|
||||||
|
// Ex. grafana.com/access/canDelete.
|
||||||
|
func AccessControlAnnotation(action string) string {
|
||||||
|
return fmt.Sprintf("%s%s/%s", common.InternalPrefix, "access", action)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetInUse(routesCnt int, rules []string) {
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string, 2)
|
||||||
|
}
|
||||||
|
o.Annotations[InUseAnnotation("routes")] = fmt.Sprintf("%d", routesCnt)
|
||||||
|
o.Annotations[InUseAnnotation("rules")] = fmt.Sprintf("%d", len(rules))
|
||||||
|
}
|
||||||
|
|
||||||
|
// InUseAnnotation returns the key for the in-use annotation for the given resource.
|
||||||
|
// Ex. grafana.com/inUse/routes, grafana.com/inUse/rules.
|
||||||
|
func InUseAnnotation(resource string) string {
|
||||||
|
return fmt.Sprintf("%s%s/%s", common.InternalPrefix, "inUse", resource)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SelectableFields(obj *Receiver) fields.Set {
|
||||||
|
if obj == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
selectable := Schema().SelectableFields()
|
||||||
|
set := make(fields.Set, len(selectable))
|
||||||
|
for _, field := range selectable {
|
||||||
|
f, err := field.FieldValueFunc(obj)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
set[field.FieldSelector] = f
|
||||||
|
}
|
||||||
|
return generic.MergeFieldsSets(generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false), set)
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"io"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
)
|
||||||
|
|
||||||
|
// JSONCodec is an implementation of resource.Codec for kubernetes JSON encoding
|
||||||
|
type JSONCodec struct{}
|
||||||
|
|
||||||
|
// Read reads JSON-encoded bytes from `reader` and unmarshals them into `into`
|
||||||
|
func (*JSONCodec) Read(reader io.Reader, into resource.Object) error {
|
||||||
|
return json.NewDecoder(reader).Decode(into)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write writes JSON-encoded bytes into `writer` marshaled from `from`
|
||||||
|
func (*JSONCodec) Write(writer io.Writer, from resource.Object) error {
|
||||||
|
return json.NewEncoder(writer).Encode(from)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance checks
|
||||||
|
var _ resource.Codec = &JSONCodec{}
|
@ -0,0 +1,32 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Metadata defines model for Metadata.
|
||||||
|
type Metadata struct {
|
||||||
|
CreatedBy string `json:"createdBy"`
|
||||||
|
CreationTimestamp time.Time `json:"creationTimestamp"`
|
||||||
|
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
|
||||||
|
Finalizers []string `json:"finalizers"`
|
||||||
|
Generation int64 `json:"generation"`
|
||||||
|
Labels map[string]string `json:"labels"`
|
||||||
|
ResourceVersion string `json:"resourceVersion"`
|
||||||
|
Uid string `json:"uid"`
|
||||||
|
UpdateTimestamp time.Time `json:"updateTimestamp"`
|
||||||
|
UpdatedBy string `json:"updatedBy"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// _kubeObjectMetadata is metadata found in a kubernetes object's metadata field.
|
||||||
|
// It is not exhaustive and only includes fields which may be relevant to a kind's implementation,
|
||||||
|
// As it is also intended to be generic enough to function with any API Server.
|
||||||
|
type KubeObjectMetadata struct {
|
||||||
|
CreationTimestamp time.Time `json:"creationTimestamp"`
|
||||||
|
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
|
||||||
|
Finalizers []string `json:"finalizers"`
|
||||||
|
Generation int64 `json:"generation"`
|
||||||
|
Labels map[string]string `json:"labels"`
|
||||||
|
ResourceVersion string `json:"resourceVersion"`
|
||||||
|
Uid string `json:"uid"`
|
||||||
|
}
|
@ -0,0 +1,266 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type Receiver struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ObjectMeta `json:"metadata"`
|
||||||
|
Spec Spec `json:"spec"`
|
||||||
|
Status Status `json:"status"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) GetSpec() any {
|
||||||
|
return o.Spec
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetSpec(spec any) error {
|
||||||
|
cast, ok := spec.(Spec)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
|
||||||
|
}
|
||||||
|
o.Spec = cast
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) GetSubresources() map[string]any {
|
||||||
|
return map[string]any{
|
||||||
|
"status": o.Status,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) GetSubresource(name string) (any, bool) {
|
||||||
|
switch name {
|
||||||
|
case "status":
|
||||||
|
return o.Status, true
|
||||||
|
default:
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetSubresource(name string, value any) error {
|
||||||
|
switch name {
|
||||||
|
case "status":
|
||||||
|
cast, ok := value.(Status)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("cannot set status type %#v, not of type Status", value)
|
||||||
|
}
|
||||||
|
o.Status = cast
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("subresource '%s' does not exist", name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) GetStaticMetadata() resource.StaticMetadata {
|
||||||
|
gvk := o.GroupVersionKind()
|
||||||
|
return resource.StaticMetadata{
|
||||||
|
Name: o.ObjectMeta.Name,
|
||||||
|
Namespace: o.ObjectMeta.Namespace,
|
||||||
|
Group: gvk.Group,
|
||||||
|
Version: gvk.Version,
|
||||||
|
Kind: gvk.Kind,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetStaticMetadata(metadata resource.StaticMetadata) {
|
||||||
|
o.Name = metadata.Name
|
||||||
|
o.Namespace = metadata.Namespace
|
||||||
|
o.SetGroupVersionKind(schema.GroupVersionKind{
|
||||||
|
Group: metadata.Group,
|
||||||
|
Version: metadata.Version,
|
||||||
|
Kind: metadata.Kind,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) GetCommonMetadata() resource.CommonMetadata {
|
||||||
|
dt := o.DeletionTimestamp
|
||||||
|
var deletionTimestamp *time.Time
|
||||||
|
if dt != nil {
|
||||||
|
deletionTimestamp = &dt.Time
|
||||||
|
}
|
||||||
|
// Legacy ExtraFields support
|
||||||
|
extraFields := make(map[string]any)
|
||||||
|
if o.Annotations != nil {
|
||||||
|
extraFields["annotations"] = o.Annotations
|
||||||
|
}
|
||||||
|
if o.ManagedFields != nil {
|
||||||
|
extraFields["managedFields"] = o.ManagedFields
|
||||||
|
}
|
||||||
|
if o.OwnerReferences != nil {
|
||||||
|
extraFields["ownerReferences"] = o.OwnerReferences
|
||||||
|
}
|
||||||
|
return resource.CommonMetadata{
|
||||||
|
UID: string(o.UID),
|
||||||
|
ResourceVersion: o.ResourceVersion,
|
||||||
|
Generation: o.Generation,
|
||||||
|
Labels: o.Labels,
|
||||||
|
CreationTimestamp: o.CreationTimestamp.Time,
|
||||||
|
DeletionTimestamp: deletionTimestamp,
|
||||||
|
Finalizers: o.Finalizers,
|
||||||
|
UpdateTimestamp: o.GetUpdateTimestamp(),
|
||||||
|
CreatedBy: o.GetCreatedBy(),
|
||||||
|
UpdatedBy: o.GetUpdatedBy(),
|
||||||
|
ExtraFields: extraFields,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetCommonMetadata(metadata resource.CommonMetadata) {
|
||||||
|
o.UID = types.UID(metadata.UID)
|
||||||
|
o.ResourceVersion = metadata.ResourceVersion
|
||||||
|
o.Generation = metadata.Generation
|
||||||
|
o.Labels = metadata.Labels
|
||||||
|
o.CreationTimestamp = metav1.NewTime(metadata.CreationTimestamp)
|
||||||
|
if metadata.DeletionTimestamp != nil {
|
||||||
|
dt := metav1.NewTime(*metadata.DeletionTimestamp)
|
||||||
|
o.DeletionTimestamp = &dt
|
||||||
|
} else {
|
||||||
|
o.DeletionTimestamp = nil
|
||||||
|
}
|
||||||
|
o.Finalizers = metadata.Finalizers
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
if !metadata.UpdateTimestamp.IsZero() {
|
||||||
|
o.SetUpdateTimestamp(metadata.UpdateTimestamp)
|
||||||
|
}
|
||||||
|
if metadata.CreatedBy != "" {
|
||||||
|
o.SetCreatedBy(metadata.CreatedBy)
|
||||||
|
}
|
||||||
|
if metadata.UpdatedBy != "" {
|
||||||
|
o.SetUpdatedBy(metadata.UpdatedBy)
|
||||||
|
}
|
||||||
|
// Legacy support for setting Annotations, ManagedFields, and OwnerReferences via ExtraFields
|
||||||
|
if metadata.ExtraFields != nil {
|
||||||
|
if annotations, ok := metadata.ExtraFields["annotations"]; ok {
|
||||||
|
if cast, ok := annotations.(map[string]string); ok {
|
||||||
|
o.Annotations = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if managedFields, ok := metadata.ExtraFields["managedFields"]; ok {
|
||||||
|
if cast, ok := managedFields.([]metav1.ManagedFieldsEntry); ok {
|
||||||
|
o.ManagedFields = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ownerReferences, ok := metadata.ExtraFields["ownerReferences"]; ok {
|
||||||
|
if cast, ok := ownerReferences.([]metav1.OwnerReference); ok {
|
||||||
|
o.OwnerReferences = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) GetCreatedBy() string {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetCreatedBy(createdBy string) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) GetUpdateTimestamp() time.Time {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
|
||||||
|
return parsed
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetUpdateTimestamp(updateTimestamp time.Time) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) GetUpdatedBy() string {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) SetUpdatedBy(updatedBy string) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) Copy() resource.Object {
|
||||||
|
return resource.CopyObject(o)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Receiver) DeepCopyObject() runtime.Object {
|
||||||
|
return o.Copy()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance compile-time check
|
||||||
|
var _ resource.Object = &Receiver{}
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type ReceiverList struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ListMeta `json:"metadata"`
|
||||||
|
Items []Receiver `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *ReceiverList) DeepCopyObject() runtime.Object {
|
||||||
|
return o.Copy()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *ReceiverList) Copy() resource.ListObject {
|
||||||
|
cpy := &ReceiverList{
|
||||||
|
TypeMeta: o.TypeMeta,
|
||||||
|
Items: make([]Receiver, len(o.Items)),
|
||||||
|
}
|
||||||
|
o.ListMeta.DeepCopyInto(&cpy.ListMeta)
|
||||||
|
for i := 0; i < len(o.Items); i++ {
|
||||||
|
if item, ok := o.Items[i].Copy().(*Receiver); ok {
|
||||||
|
cpy.Items[i] = *item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cpy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *ReceiverList) GetItems() []resource.Object {
|
||||||
|
items := make([]resource.Object, len(o.Items))
|
||||||
|
for i := 0; i < len(o.Items); i++ {
|
||||||
|
items[i] = &o.Items[i]
|
||||||
|
}
|
||||||
|
return items
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *ReceiverList) SetItems(items []resource.Object) {
|
||||||
|
o.Items = make([]Receiver, len(items))
|
||||||
|
for i := 0; i < len(items); i++ {
|
||||||
|
o.Items[i] = *items[i].(*Receiver)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance compile-time check
|
||||||
|
var _ resource.ListObject = &ReceiverList{}
|
@ -0,0 +1,46 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
)
|
||||||
|
|
||||||
|
// schema is unexported to prevent accidental overwrites
|
||||||
|
var (
|
||||||
|
schemaReceiver = resource.NewSimpleSchema("notifications.alerting.grafana.app", "v0alpha1", &Receiver{}, &ReceiverList{}, resource.WithKind("Receiver"),
|
||||||
|
resource.WithPlural("receivers"), resource.WithScope(resource.NamespacedScope), resource.WithSelectableFields([]resource.SelectableField{resource.SelectableField{
|
||||||
|
FieldSelector: "spec.title",
|
||||||
|
FieldValueFunc: func(o resource.Object) (string, error) {
|
||||||
|
cast, ok := o.(*Receiver)
|
||||||
|
if !ok {
|
||||||
|
return "", fmt.Errorf("provided object must be of type *Receiver")
|
||||||
|
}
|
||||||
|
return cast.Spec.Title, nil
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
kindReceiver = resource.Kind{
|
||||||
|
Schema: schemaReceiver,
|
||||||
|
Codecs: map[resource.KindEncoding]resource.Codec{
|
||||||
|
resource.KindEncodingJSON: &JSONCodec{},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Kind returns a resource.Kind for this Schema with a JSON codec
|
||||||
|
func Kind() resource.Kind {
|
||||||
|
return kindReceiver
|
||||||
|
}
|
||||||
|
|
||||||
|
// Schema returns a resource.SimpleSchema representation of Receiver
|
||||||
|
func Schema() *resource.SimpleSchema {
|
||||||
|
return schemaReceiver
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance checks
|
||||||
|
var _ resource.Schema = kindReceiver
|
@ -0,0 +1,18 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
// Integration defines model for Integration.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type Integration struct {
|
||||||
|
DisableResolveMessage *bool `json:"disableResolveMessage,omitempty"`
|
||||||
|
SecureFields map[string]bool `json:"secureFields,omitempty"`
|
||||||
|
Settings map[string]interface{} `json:"settings"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
Uid *string `json:"uid,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spec defines model for Spec.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type Spec struct {
|
||||||
|
Integrations []Integration `json:"integrations"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
// Defines values for OperatorStateState.
|
||||||
|
const (
|
||||||
|
OperatorStateStateFailed OperatorStateState = "failed"
|
||||||
|
OperatorStateStateInProgress OperatorStateState = "in_progress"
|
||||||
|
OperatorStateStateSuccess OperatorStateState = "success"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Defines values for StatusOperatorStateState.
|
||||||
|
const (
|
||||||
|
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
|
||||||
|
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
|
||||||
|
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OperatorState defines model for OperatorState.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type OperatorState struct {
|
||||||
|
// descriptiveState is an optional more descriptive state field which has no requirements on format
|
||||||
|
DescriptiveState *string `json:"descriptiveState,omitempty"`
|
||||||
|
|
||||||
|
// details contains any extra information that is operator-specific
|
||||||
|
Details map[string]interface{} `json:"details,omitempty"`
|
||||||
|
|
||||||
|
// lastEvaluation is the ResourceVersion last evaluated
|
||||||
|
LastEvaluation string `json:"lastEvaluation"`
|
||||||
|
|
||||||
|
// state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
State OperatorStateState `json:"state"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// OperatorStateState state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type OperatorStateState string
|
||||||
|
|
||||||
|
// Status defines model for Status.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type Status struct {
|
||||||
|
// additionalFields is reserved for future use
|
||||||
|
AdditionalFields map[string]interface{} `json:"additionalFields,omitempty"`
|
||||||
|
|
||||||
|
// operatorStates is a map of operator ID to operator state evaluations.
|
||||||
|
// Any operator which consumes this kind SHOULD add its state evaluation information to this field.
|
||||||
|
OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatusOperatorState defines model for status.#OperatorState.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type StatusOperatorState struct {
|
||||||
|
// descriptiveState is an optional more descriptive state field which has no requirements on format
|
||||||
|
DescriptiveState *string `json:"descriptiveState,omitempty"`
|
||||||
|
|
||||||
|
// details contains any extra information that is operator-specific
|
||||||
|
Details map[string]interface{} `json:"details,omitempty"`
|
||||||
|
|
||||||
|
// lastEvaluation is the ResourceVersion last evaluated
|
||||||
|
LastEvaluation string `json:"lastEvaluation"`
|
||||||
|
|
||||||
|
// state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
State StatusOperatorStateState `json:"state"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatusOperatorStateState state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type StatusOperatorStateState string
|
@ -0,0 +1,365 @@
|
|||||||
|
//go:build !ignore_autogenerated
|
||||||
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
common "k8s.io/kube-openapi/pkg/common"
|
||||||
|
spec "k8s.io/kube-openapi/pkg/validation/spec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
|
||||||
|
return map[string]common.OpenAPIDefinition{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Integration": schema_apis_resource_receiver_v0alpha1_Integration(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.OperatorState": schema_apis_resource_receiver_v0alpha1_OperatorState(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Receiver": schema_apis_resource_receiver_v0alpha1_Receiver(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.ReceiverList": schema_apis_resource_receiver_v0alpha1_ReceiverList(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Spec": schema_apis_resource_receiver_v0alpha1_Spec(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Status": schema_apis_resource_receiver_v0alpha1_Status(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.StatusOperatorState": schema_apis_resource_receiver_v0alpha1_StatusOperatorState(ref),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_receiver_v0alpha1_Integration(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Integration defines model for Integration.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"disableResolveMessage": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"boolean"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"secureFields": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: false,
|
||||||
|
Type: []string{"boolean"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"uid": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"settings", "type"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_receiver_v0alpha1_OperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "OperatorState defines model for OperatorState.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"descriptiveState": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"details": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "details contains any extra information that is operator-specific",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"lastEvaluation": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "lastEvaluation is the ResourceVersion last evaluated",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"lastEvaluation", "state"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_receiver_v0alpha1_Receiver(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"kind": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"apiVersion": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"spec": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Spec"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Status"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"metadata", "spec", "status"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Spec", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_receiver_v0alpha1_ReceiverList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"kind": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"apiVersion": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"items": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Receiver"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"metadata", "items"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Receiver", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_receiver_v0alpha1_Spec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Spec defines model for Spec.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"integrations": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Integration"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"integrations", "title"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.Integration"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_receiver_v0alpha1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Status defines model for Status.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"additionalFields": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "additionalFields is reserved for future use",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"operatorStates": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.StatusOperatorState"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/receiver/v0alpha1.StatusOperatorState"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_receiver_v0alpha1_StatusOperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "StatusOperatorState defines model for status.#OperatorState.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"descriptiveState": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"details": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "details contains any extra information that is operator-specific",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"lastEvaluation": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "lastEvaluation is the ResourceVersion last evaluated",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"lastEvaluation", "state"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/grafana/grafana/apps/alerting/common"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Re-define some enum values with confusing names
|
||||||
|
// TODO figure out how we can control name of enum
|
||||||
|
const (
|
||||||
|
MatcherTypeNotEqual MatcherType = "!="
|
||||||
|
MatcherTypeEqualRegex MatcherType = "=~"
|
||||||
|
MatcherTypeNotEqualRegex MatcherType = "!~"
|
||||||
|
)
|
||||||
|
|
||||||
|
const UserDefinedRoutingTreeName = "user-defined"
|
||||||
|
|
||||||
|
func (o *RoutingTree) GetProvenanceStatus() string {
|
||||||
|
if o == nil || o.Annotations == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
s, ok := o.Annotations[common.ProvenanceStatusAnnotationKey]
|
||||||
|
if !ok || s == "" {
|
||||||
|
return common.ProvenanceStatusNone
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) SetProvenanceStatus(status string) {
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string, 1)
|
||||||
|
}
|
||||||
|
if status == "" {
|
||||||
|
status = common.ProvenanceStatusNone
|
||||||
|
}
|
||||||
|
o.Annotations[common.ProvenanceStatusAnnotationKey] = status
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"io"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
)
|
||||||
|
|
||||||
|
// JSONCodec is an implementation of resource.Codec for kubernetes JSON encoding
|
||||||
|
type JSONCodec struct{}
|
||||||
|
|
||||||
|
// Read reads JSON-encoded bytes from `reader` and unmarshals them into `into`
|
||||||
|
func (*JSONCodec) Read(reader io.Reader, into resource.Object) error {
|
||||||
|
return json.NewDecoder(reader).Decode(into)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write writes JSON-encoded bytes into `writer` marshaled from `from`
|
||||||
|
func (*JSONCodec) Write(writer io.Writer, from resource.Object) error {
|
||||||
|
return json.NewEncoder(writer).Encode(from)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance checks
|
||||||
|
var _ resource.Codec = &JSONCodec{}
|
@ -0,0 +1,32 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Metadata defines model for Metadata.
|
||||||
|
type Metadata struct {
|
||||||
|
CreatedBy string `json:"createdBy"`
|
||||||
|
CreationTimestamp time.Time `json:"creationTimestamp"`
|
||||||
|
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
|
||||||
|
Finalizers []string `json:"finalizers"`
|
||||||
|
Generation int64 `json:"generation"`
|
||||||
|
Labels map[string]string `json:"labels"`
|
||||||
|
ResourceVersion string `json:"resourceVersion"`
|
||||||
|
Uid string `json:"uid"`
|
||||||
|
UpdateTimestamp time.Time `json:"updateTimestamp"`
|
||||||
|
UpdatedBy string `json:"updatedBy"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// _kubeObjectMetadata is metadata found in a kubernetes object's metadata field.
|
||||||
|
// It is not exhaustive and only includes fields which may be relevant to a kind's implementation,
|
||||||
|
// As it is also intended to be generic enough to function with any API Server.
|
||||||
|
type KubeObjectMetadata struct {
|
||||||
|
CreationTimestamp time.Time `json:"creationTimestamp"`
|
||||||
|
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
|
||||||
|
Finalizers []string `json:"finalizers"`
|
||||||
|
Generation int64 `json:"generation"`
|
||||||
|
Labels map[string]string `json:"labels"`
|
||||||
|
ResourceVersion string `json:"resourceVersion"`
|
||||||
|
Uid string `json:"uid"`
|
||||||
|
}
|
@ -0,0 +1,266 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type RoutingTree struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ObjectMeta `json:"metadata"`
|
||||||
|
Spec Spec `json:"spec"`
|
||||||
|
Status Status `json:"status"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) GetSpec() any {
|
||||||
|
return o.Spec
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) SetSpec(spec any) error {
|
||||||
|
cast, ok := spec.(Spec)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
|
||||||
|
}
|
||||||
|
o.Spec = cast
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) GetSubresources() map[string]any {
|
||||||
|
return map[string]any{
|
||||||
|
"status": o.Status,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) GetSubresource(name string) (any, bool) {
|
||||||
|
switch name {
|
||||||
|
case "status":
|
||||||
|
return o.Status, true
|
||||||
|
default:
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) SetSubresource(name string, value any) error {
|
||||||
|
switch name {
|
||||||
|
case "status":
|
||||||
|
cast, ok := value.(Status)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("cannot set status type %#v, not of type Status", value)
|
||||||
|
}
|
||||||
|
o.Status = cast
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("subresource '%s' does not exist", name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) GetStaticMetadata() resource.StaticMetadata {
|
||||||
|
gvk := o.GroupVersionKind()
|
||||||
|
return resource.StaticMetadata{
|
||||||
|
Name: o.ObjectMeta.Name,
|
||||||
|
Namespace: o.ObjectMeta.Namespace,
|
||||||
|
Group: gvk.Group,
|
||||||
|
Version: gvk.Version,
|
||||||
|
Kind: gvk.Kind,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) SetStaticMetadata(metadata resource.StaticMetadata) {
|
||||||
|
o.Name = metadata.Name
|
||||||
|
o.Namespace = metadata.Namespace
|
||||||
|
o.SetGroupVersionKind(schema.GroupVersionKind{
|
||||||
|
Group: metadata.Group,
|
||||||
|
Version: metadata.Version,
|
||||||
|
Kind: metadata.Kind,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) GetCommonMetadata() resource.CommonMetadata {
|
||||||
|
dt := o.DeletionTimestamp
|
||||||
|
var deletionTimestamp *time.Time
|
||||||
|
if dt != nil {
|
||||||
|
deletionTimestamp = &dt.Time
|
||||||
|
}
|
||||||
|
// Legacy ExtraFields support
|
||||||
|
extraFields := make(map[string]any)
|
||||||
|
if o.Annotations != nil {
|
||||||
|
extraFields["annotations"] = o.Annotations
|
||||||
|
}
|
||||||
|
if o.ManagedFields != nil {
|
||||||
|
extraFields["managedFields"] = o.ManagedFields
|
||||||
|
}
|
||||||
|
if o.OwnerReferences != nil {
|
||||||
|
extraFields["ownerReferences"] = o.OwnerReferences
|
||||||
|
}
|
||||||
|
return resource.CommonMetadata{
|
||||||
|
UID: string(o.UID),
|
||||||
|
ResourceVersion: o.ResourceVersion,
|
||||||
|
Generation: o.Generation,
|
||||||
|
Labels: o.Labels,
|
||||||
|
CreationTimestamp: o.CreationTimestamp.Time,
|
||||||
|
DeletionTimestamp: deletionTimestamp,
|
||||||
|
Finalizers: o.Finalizers,
|
||||||
|
UpdateTimestamp: o.GetUpdateTimestamp(),
|
||||||
|
CreatedBy: o.GetCreatedBy(),
|
||||||
|
UpdatedBy: o.GetUpdatedBy(),
|
||||||
|
ExtraFields: extraFields,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) SetCommonMetadata(metadata resource.CommonMetadata) {
|
||||||
|
o.UID = types.UID(metadata.UID)
|
||||||
|
o.ResourceVersion = metadata.ResourceVersion
|
||||||
|
o.Generation = metadata.Generation
|
||||||
|
o.Labels = metadata.Labels
|
||||||
|
o.CreationTimestamp = metav1.NewTime(metadata.CreationTimestamp)
|
||||||
|
if metadata.DeletionTimestamp != nil {
|
||||||
|
dt := metav1.NewTime(*metadata.DeletionTimestamp)
|
||||||
|
o.DeletionTimestamp = &dt
|
||||||
|
} else {
|
||||||
|
o.DeletionTimestamp = nil
|
||||||
|
}
|
||||||
|
o.Finalizers = metadata.Finalizers
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
if !metadata.UpdateTimestamp.IsZero() {
|
||||||
|
o.SetUpdateTimestamp(metadata.UpdateTimestamp)
|
||||||
|
}
|
||||||
|
if metadata.CreatedBy != "" {
|
||||||
|
o.SetCreatedBy(metadata.CreatedBy)
|
||||||
|
}
|
||||||
|
if metadata.UpdatedBy != "" {
|
||||||
|
o.SetUpdatedBy(metadata.UpdatedBy)
|
||||||
|
}
|
||||||
|
// Legacy support for setting Annotations, ManagedFields, and OwnerReferences via ExtraFields
|
||||||
|
if metadata.ExtraFields != nil {
|
||||||
|
if annotations, ok := metadata.ExtraFields["annotations"]; ok {
|
||||||
|
if cast, ok := annotations.(map[string]string); ok {
|
||||||
|
o.Annotations = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if managedFields, ok := metadata.ExtraFields["managedFields"]; ok {
|
||||||
|
if cast, ok := managedFields.([]metav1.ManagedFieldsEntry); ok {
|
||||||
|
o.ManagedFields = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ownerReferences, ok := metadata.ExtraFields["ownerReferences"]; ok {
|
||||||
|
if cast, ok := ownerReferences.([]metav1.OwnerReference); ok {
|
||||||
|
o.OwnerReferences = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) GetCreatedBy() string {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) SetCreatedBy(createdBy string) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) GetUpdateTimestamp() time.Time {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
|
||||||
|
return parsed
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) SetUpdateTimestamp(updateTimestamp time.Time) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) GetUpdatedBy() string {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) SetUpdatedBy(updatedBy string) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) Copy() resource.Object {
|
||||||
|
return resource.CopyObject(o)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTree) DeepCopyObject() runtime.Object {
|
||||||
|
return o.Copy()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance compile-time check
|
||||||
|
var _ resource.Object = &RoutingTree{}
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type RoutingTreeList struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ListMeta `json:"metadata"`
|
||||||
|
Items []RoutingTree `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTreeList) DeepCopyObject() runtime.Object {
|
||||||
|
return o.Copy()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTreeList) Copy() resource.ListObject {
|
||||||
|
cpy := &RoutingTreeList{
|
||||||
|
TypeMeta: o.TypeMeta,
|
||||||
|
Items: make([]RoutingTree, len(o.Items)),
|
||||||
|
}
|
||||||
|
o.ListMeta.DeepCopyInto(&cpy.ListMeta)
|
||||||
|
for i := 0; i < len(o.Items); i++ {
|
||||||
|
if item, ok := o.Items[i].Copy().(*RoutingTree); ok {
|
||||||
|
cpy.Items[i] = *item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cpy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTreeList) GetItems() []resource.Object {
|
||||||
|
items := make([]resource.Object, len(o.Items))
|
||||||
|
for i := 0; i < len(o.Items); i++ {
|
||||||
|
items[i] = &o.Items[i]
|
||||||
|
}
|
||||||
|
return items
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *RoutingTreeList) SetItems(items []resource.Object) {
|
||||||
|
o.Items = make([]RoutingTree, len(items))
|
||||||
|
for i := 0; i < len(items); i++ {
|
||||||
|
o.Items[i] = *items[i].(*RoutingTree)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance compile-time check
|
||||||
|
var _ resource.ListObject = &RoutingTreeList{}
|
@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
)
|
||||||
|
|
||||||
|
// schema is unexported to prevent accidental overwrites
|
||||||
|
var (
|
||||||
|
schemaRoutingTree = resource.NewSimpleSchema("notifications.alerting.grafana.app", "v0alpha1", &RoutingTree{}, &RoutingTreeList{}, resource.WithKind("RoutingTree"),
|
||||||
|
resource.WithPlural("routingtrees"), resource.WithScope(resource.NamespacedScope))
|
||||||
|
kindRoutingTree = resource.Kind{
|
||||||
|
Schema: schemaRoutingTree,
|
||||||
|
Codecs: map[resource.KindEncoding]resource.Codec{
|
||||||
|
resource.KindEncodingJSON: &JSONCodec{},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Kind returns a resource.Kind for this Schema with a JSON codec
|
||||||
|
func Kind() resource.Kind {
|
||||||
|
return kindRoutingTree
|
||||||
|
}
|
||||||
|
|
||||||
|
// Schema returns a resource.SimpleSchema representation of RoutingTree
|
||||||
|
func Schema() *resource.SimpleSchema {
|
||||||
|
return schemaRoutingTree
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance checks
|
||||||
|
var _ resource.Schema = kindRoutingTree
|
@ -2,10 +2,10 @@ package v0alpha1
|
|||||||
|
|
||||||
// Defines values for MatcherType.
|
// Defines values for MatcherType.
|
||||||
const (
|
const (
|
||||||
MatcherTypeNotEqual MatcherType = "!="
|
MatcherTypeEmpty MatcherType = "!="
|
||||||
MatcherTypeEqual MatcherType = "="
|
MatcherTypeEqual MatcherType = "="
|
||||||
MatcherTypeEqualRegex MatcherType = "=~"
|
MatcherTypeEqualTilde MatcherType = "=~"
|
||||||
MatcherTypeNotEqualRegex MatcherType = "!~"
|
MatcherTypeN1 MatcherType = "!~"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Matcher defines model for Matcher.
|
// Matcher defines model for Matcher.
|
||||||
@ -23,7 +23,7 @@ type MatcherType string
|
|||||||
// Route defines model for Route.
|
// Route defines model for Route.
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
type Route struct {
|
type Route struct {
|
||||||
Continue bool `json:"continue,omitempty"`
|
Continue bool `json:"continue"`
|
||||||
GroupBy []string `json:"group_by,omitempty"`
|
GroupBy []string `json:"group_by,omitempty"`
|
||||||
GroupInterval *string `json:"group_interval,omitempty"`
|
GroupInterval *string `json:"group_interval,omitempty"`
|
||||||
GroupWait *string `json:"group_wait,omitempty"`
|
GroupWait *string `json:"group_wait,omitempty"`
|
||||||
@ -46,7 +46,7 @@ type RouteDefaults struct {
|
|||||||
|
|
||||||
// Spec defines model for Spec.
|
// Spec defines model for Spec.
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
type RoutingTreeSpec struct {
|
type Spec struct {
|
||||||
Defaults RouteDefaults `json:"defaults"`
|
Defaults RouteDefaults `json:"defaults"`
|
||||||
Routes []Route `json:"routes"`
|
Routes []Route `json:"routes"`
|
||||||
}
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
// Defines values for OperatorStateState.
|
||||||
|
const (
|
||||||
|
OperatorStateStateFailed OperatorStateState = "failed"
|
||||||
|
OperatorStateStateInProgress OperatorStateState = "in_progress"
|
||||||
|
OperatorStateStateSuccess OperatorStateState = "success"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Defines values for StatusOperatorStateState.
|
||||||
|
const (
|
||||||
|
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
|
||||||
|
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
|
||||||
|
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OperatorState defines model for OperatorState.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type OperatorState struct {
|
||||||
|
// descriptiveState is an optional more descriptive state field which has no requirements on format
|
||||||
|
DescriptiveState *string `json:"descriptiveState,omitempty"`
|
||||||
|
|
||||||
|
// details contains any extra information that is operator-specific
|
||||||
|
Details map[string]interface{} `json:"details,omitempty"`
|
||||||
|
|
||||||
|
// lastEvaluation is the ResourceVersion last evaluated
|
||||||
|
LastEvaluation string `json:"lastEvaluation"`
|
||||||
|
|
||||||
|
// state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
State OperatorStateState `json:"state"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// OperatorStateState state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type OperatorStateState string
|
||||||
|
|
||||||
|
// Status defines model for Status.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type Status struct {
|
||||||
|
// additionalFields is reserved for future use
|
||||||
|
AdditionalFields map[string]interface{} `json:"additionalFields,omitempty"`
|
||||||
|
|
||||||
|
// operatorStates is a map of operator ID to operator state evaluations.
|
||||||
|
// Any operator which consumes this kind SHOULD add its state evaluation information to this field.
|
||||||
|
OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatusOperatorState defines model for status.#OperatorState.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type StatusOperatorState struct {
|
||||||
|
// descriptiveState is an optional more descriptive state field which has no requirements on format
|
||||||
|
DescriptiveState *string `json:"descriptiveState,omitempty"`
|
||||||
|
|
||||||
|
// details contains any extra information that is operator-specific
|
||||||
|
Details map[string]interface{} `json:"details,omitempty"`
|
||||||
|
|
||||||
|
// lastEvaluation is the ResourceVersion last evaluated
|
||||||
|
LastEvaluation string `json:"lastEvaluation"`
|
||||||
|
|
||||||
|
// state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
State StatusOperatorStateState `json:"state"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatusOperatorStateState state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type StatusOperatorStateState string
|
@ -0,0 +1,493 @@
|
|||||||
|
//go:build !ignore_autogenerated
|
||||||
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
common "k8s.io/kube-openapi/pkg/common"
|
||||||
|
spec "k8s.io/kube-openapi/pkg/validation/spec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
|
||||||
|
return map[string]common.OpenAPIDefinition{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Matcher": schema_apis_resource_routingtree_v0alpha1_Matcher(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.OperatorState": schema_apis_resource_routingtree_v0alpha1_OperatorState(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route": schema_apis_resource_routingtree_v0alpha1_Route(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RouteDefaults": schema_apis_resource_routingtree_v0alpha1_RouteDefaults(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RoutingTree": schema_apis_resource_routingtree_v0alpha1_RoutingTree(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RoutingTreeList": schema_apis_resource_routingtree_v0alpha1_RoutingTreeList(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Spec": schema_apis_resource_routingtree_v0alpha1_Spec(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Status": schema_apis_resource_routingtree_v0alpha1_Status(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.StatusOperatorState": schema_apis_resource_routingtree_v0alpha1_StatusOperatorState(ref),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_routingtree_v0alpha1_Matcher(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Matcher defines model for Matcher.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"label": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"label", "type", "value"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_routingtree_v0alpha1_OperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "OperatorState defines model for OperatorState.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"descriptiveState": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"details": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "details contains any extra information that is operator-specific",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"lastEvaluation": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "lastEvaluation is the ResourceVersion last evaluated",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"lastEvaluation", "state"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_routingtree_v0alpha1_Route(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Route defines model for Route.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"continue": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: false,
|
||||||
|
Type: []string{"boolean"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"group_by": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"group_interval": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"group_wait": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"matchers": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Matcher"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"mute_time_intervals": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"receiver": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"repeat_interval": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"routes": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"continue"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Matcher", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_routingtree_v0alpha1_RouteDefaults(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "RouteDefaults defines model for RouteDefaults.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"group_by": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"group_interval": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"group_wait": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"receiver": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"repeat_interval": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"receiver"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_routingtree_v0alpha1_RoutingTree(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"kind": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"apiVersion": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"spec": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Spec"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Status"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"metadata", "spec", "status"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Spec", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_routingtree_v0alpha1_RoutingTreeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"kind": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"apiVersion": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"items": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RoutingTree"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"metadata", "items"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RoutingTree", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_routingtree_v0alpha1_Spec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Spec defines model for Spec.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"defaults": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RouteDefaults"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"routes": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"defaults", "routes"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.Route", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.RouteDefaults"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_routingtree_v0alpha1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Status defines model for Status.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"additionalFields": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "additionalFields is reserved for future use",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"operatorStates": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.StatusOperatorState"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/routingtree/v0alpha1.StatusOperatorState"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_routingtree_v0alpha1_StatusOperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "StatusOperatorState defines model for status.#OperatorState.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"descriptiveState": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"details": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "details contains any extra information that is operator-specific",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"lastEvaluation": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "lastEvaluation is the ResourceVersion last evaluated",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"lastEvaluation", "state"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/fields"
|
||||||
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana/apps/alerting/common"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (o *TemplateGroup) GetProvenanceStatus() string {
|
||||||
|
if o == nil || o.Annotations == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
s, ok := o.Annotations[common.ProvenanceStatusAnnotationKey]
|
||||||
|
if !ok || s == "" {
|
||||||
|
return common.ProvenanceStatusNone
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) SetProvenanceStatus(status string) {
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string, 1)
|
||||||
|
}
|
||||||
|
if status == "" {
|
||||||
|
status = common.ProvenanceStatusNone
|
||||||
|
}
|
||||||
|
o.Annotations[common.ProvenanceStatusAnnotationKey] = status
|
||||||
|
}
|
||||||
|
|
||||||
|
func SelectableFields(obj *TemplateGroup) fields.Set {
|
||||||
|
if obj == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
selectable := Schema().SelectableFields()
|
||||||
|
set := make(fields.Set, len(selectable))
|
||||||
|
for _, field := range selectable {
|
||||||
|
f, err := field.FieldValueFunc(obj)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
set[field.FieldSelector] = f
|
||||||
|
}
|
||||||
|
return generic.MergeFieldsSets(generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false), set)
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"io"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
)
|
||||||
|
|
||||||
|
// JSONCodec is an implementation of resource.Codec for kubernetes JSON encoding
|
||||||
|
type JSONCodec struct{}
|
||||||
|
|
||||||
|
// Read reads JSON-encoded bytes from `reader` and unmarshals them into `into`
|
||||||
|
func (*JSONCodec) Read(reader io.Reader, into resource.Object) error {
|
||||||
|
return json.NewDecoder(reader).Decode(into)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write writes JSON-encoded bytes into `writer` marshaled from `from`
|
||||||
|
func (*JSONCodec) Write(writer io.Writer, from resource.Object) error {
|
||||||
|
return json.NewEncoder(writer).Encode(from)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance checks
|
||||||
|
var _ resource.Codec = &JSONCodec{}
|
@ -0,0 +1,32 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Metadata defines model for Metadata.
|
||||||
|
type Metadata struct {
|
||||||
|
CreatedBy string `json:"createdBy"`
|
||||||
|
CreationTimestamp time.Time `json:"creationTimestamp"`
|
||||||
|
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
|
||||||
|
Finalizers []string `json:"finalizers"`
|
||||||
|
Generation int64 `json:"generation"`
|
||||||
|
Labels map[string]string `json:"labels"`
|
||||||
|
ResourceVersion string `json:"resourceVersion"`
|
||||||
|
Uid string `json:"uid"`
|
||||||
|
UpdateTimestamp time.Time `json:"updateTimestamp"`
|
||||||
|
UpdatedBy string `json:"updatedBy"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// _kubeObjectMetadata is metadata found in a kubernetes object's metadata field.
|
||||||
|
// It is not exhaustive and only includes fields which may be relevant to a kind's implementation,
|
||||||
|
// As it is also intended to be generic enough to function with any API Server.
|
||||||
|
type KubeObjectMetadata struct {
|
||||||
|
CreationTimestamp time.Time `json:"creationTimestamp"`
|
||||||
|
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
|
||||||
|
Finalizers []string `json:"finalizers"`
|
||||||
|
Generation int64 `json:"generation"`
|
||||||
|
Labels map[string]string `json:"labels"`
|
||||||
|
ResourceVersion string `json:"resourceVersion"`
|
||||||
|
Uid string `json:"uid"`
|
||||||
|
}
|
@ -0,0 +1,266 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type TemplateGroup struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ObjectMeta `json:"metadata"`
|
||||||
|
Spec Spec `json:"spec"`
|
||||||
|
Status Status `json:"status"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) GetSpec() any {
|
||||||
|
return o.Spec
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) SetSpec(spec any) error {
|
||||||
|
cast, ok := spec.(Spec)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
|
||||||
|
}
|
||||||
|
o.Spec = cast
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) GetSubresources() map[string]any {
|
||||||
|
return map[string]any{
|
||||||
|
"status": o.Status,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) GetSubresource(name string) (any, bool) {
|
||||||
|
switch name {
|
||||||
|
case "status":
|
||||||
|
return o.Status, true
|
||||||
|
default:
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) SetSubresource(name string, value any) error {
|
||||||
|
switch name {
|
||||||
|
case "status":
|
||||||
|
cast, ok := value.(Status)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("cannot set status type %#v, not of type Status", value)
|
||||||
|
}
|
||||||
|
o.Status = cast
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("subresource '%s' does not exist", name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) GetStaticMetadata() resource.StaticMetadata {
|
||||||
|
gvk := o.GroupVersionKind()
|
||||||
|
return resource.StaticMetadata{
|
||||||
|
Name: o.ObjectMeta.Name,
|
||||||
|
Namespace: o.ObjectMeta.Namespace,
|
||||||
|
Group: gvk.Group,
|
||||||
|
Version: gvk.Version,
|
||||||
|
Kind: gvk.Kind,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) SetStaticMetadata(metadata resource.StaticMetadata) {
|
||||||
|
o.Name = metadata.Name
|
||||||
|
o.Namespace = metadata.Namespace
|
||||||
|
o.SetGroupVersionKind(schema.GroupVersionKind{
|
||||||
|
Group: metadata.Group,
|
||||||
|
Version: metadata.Version,
|
||||||
|
Kind: metadata.Kind,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) GetCommonMetadata() resource.CommonMetadata {
|
||||||
|
dt := o.DeletionTimestamp
|
||||||
|
var deletionTimestamp *time.Time
|
||||||
|
if dt != nil {
|
||||||
|
deletionTimestamp = &dt.Time
|
||||||
|
}
|
||||||
|
// Legacy ExtraFields support
|
||||||
|
extraFields := make(map[string]any)
|
||||||
|
if o.Annotations != nil {
|
||||||
|
extraFields["annotations"] = o.Annotations
|
||||||
|
}
|
||||||
|
if o.ManagedFields != nil {
|
||||||
|
extraFields["managedFields"] = o.ManagedFields
|
||||||
|
}
|
||||||
|
if o.OwnerReferences != nil {
|
||||||
|
extraFields["ownerReferences"] = o.OwnerReferences
|
||||||
|
}
|
||||||
|
return resource.CommonMetadata{
|
||||||
|
UID: string(o.UID),
|
||||||
|
ResourceVersion: o.ResourceVersion,
|
||||||
|
Generation: o.Generation,
|
||||||
|
Labels: o.Labels,
|
||||||
|
CreationTimestamp: o.CreationTimestamp.Time,
|
||||||
|
DeletionTimestamp: deletionTimestamp,
|
||||||
|
Finalizers: o.Finalizers,
|
||||||
|
UpdateTimestamp: o.GetUpdateTimestamp(),
|
||||||
|
CreatedBy: o.GetCreatedBy(),
|
||||||
|
UpdatedBy: o.GetUpdatedBy(),
|
||||||
|
ExtraFields: extraFields,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) SetCommonMetadata(metadata resource.CommonMetadata) {
|
||||||
|
o.UID = types.UID(metadata.UID)
|
||||||
|
o.ResourceVersion = metadata.ResourceVersion
|
||||||
|
o.Generation = metadata.Generation
|
||||||
|
o.Labels = metadata.Labels
|
||||||
|
o.CreationTimestamp = metav1.NewTime(metadata.CreationTimestamp)
|
||||||
|
if metadata.DeletionTimestamp != nil {
|
||||||
|
dt := metav1.NewTime(*metadata.DeletionTimestamp)
|
||||||
|
o.DeletionTimestamp = &dt
|
||||||
|
} else {
|
||||||
|
o.DeletionTimestamp = nil
|
||||||
|
}
|
||||||
|
o.Finalizers = metadata.Finalizers
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
if !metadata.UpdateTimestamp.IsZero() {
|
||||||
|
o.SetUpdateTimestamp(metadata.UpdateTimestamp)
|
||||||
|
}
|
||||||
|
if metadata.CreatedBy != "" {
|
||||||
|
o.SetCreatedBy(metadata.CreatedBy)
|
||||||
|
}
|
||||||
|
if metadata.UpdatedBy != "" {
|
||||||
|
o.SetUpdatedBy(metadata.UpdatedBy)
|
||||||
|
}
|
||||||
|
// Legacy support for setting Annotations, ManagedFields, and OwnerReferences via ExtraFields
|
||||||
|
if metadata.ExtraFields != nil {
|
||||||
|
if annotations, ok := metadata.ExtraFields["annotations"]; ok {
|
||||||
|
if cast, ok := annotations.(map[string]string); ok {
|
||||||
|
o.Annotations = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if managedFields, ok := metadata.ExtraFields["managedFields"]; ok {
|
||||||
|
if cast, ok := managedFields.([]metav1.ManagedFieldsEntry); ok {
|
||||||
|
o.ManagedFields = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ownerReferences, ok := metadata.ExtraFields["ownerReferences"]; ok {
|
||||||
|
if cast, ok := ownerReferences.([]metav1.OwnerReference); ok {
|
||||||
|
o.OwnerReferences = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) GetCreatedBy() string {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) SetCreatedBy(createdBy string) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) GetUpdateTimestamp() time.Time {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
|
||||||
|
return parsed
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) SetUpdateTimestamp(updateTimestamp time.Time) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) GetUpdatedBy() string {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) SetUpdatedBy(updatedBy string) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) Copy() resource.Object {
|
||||||
|
return resource.CopyObject(o)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroup) DeepCopyObject() runtime.Object {
|
||||||
|
return o.Copy()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance compile-time check
|
||||||
|
var _ resource.Object = &TemplateGroup{}
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type TemplateGroupList struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ListMeta `json:"metadata"`
|
||||||
|
Items []TemplateGroup `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroupList) DeepCopyObject() runtime.Object {
|
||||||
|
return o.Copy()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroupList) Copy() resource.ListObject {
|
||||||
|
cpy := &TemplateGroupList{
|
||||||
|
TypeMeta: o.TypeMeta,
|
||||||
|
Items: make([]TemplateGroup, len(o.Items)),
|
||||||
|
}
|
||||||
|
o.ListMeta.DeepCopyInto(&cpy.ListMeta)
|
||||||
|
for i := 0; i < len(o.Items); i++ {
|
||||||
|
if item, ok := o.Items[i].Copy().(*TemplateGroup); ok {
|
||||||
|
cpy.Items[i] = *item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cpy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroupList) GetItems() []resource.Object {
|
||||||
|
items := make([]resource.Object, len(o.Items))
|
||||||
|
for i := 0; i < len(o.Items); i++ {
|
||||||
|
items[i] = &o.Items[i]
|
||||||
|
}
|
||||||
|
return items
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TemplateGroupList) SetItems(items []resource.Object) {
|
||||||
|
o.Items = make([]TemplateGroup, len(items))
|
||||||
|
for i := 0; i < len(items); i++ {
|
||||||
|
o.Items[i] = *items[i].(*TemplateGroup)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance compile-time check
|
||||||
|
var _ resource.ListObject = &TemplateGroupList{}
|
@ -0,0 +1,46 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
)
|
||||||
|
|
||||||
|
// schema is unexported to prevent accidental overwrites
|
||||||
|
var (
|
||||||
|
schemaTemplateGroup = resource.NewSimpleSchema("notifications.alerting.grafana.app", "v0alpha1", &TemplateGroup{}, &TemplateGroupList{}, resource.WithKind("TemplateGroup"),
|
||||||
|
resource.WithPlural("templategroups"), resource.WithScope(resource.NamespacedScope), resource.WithSelectableFields([]resource.SelectableField{resource.SelectableField{
|
||||||
|
FieldSelector: "spec.title",
|
||||||
|
FieldValueFunc: func(o resource.Object) (string, error) {
|
||||||
|
cast, ok := o.(*TemplateGroup)
|
||||||
|
if !ok {
|
||||||
|
return "", fmt.Errorf("provided object must be of type *TemplateGroup")
|
||||||
|
}
|
||||||
|
return cast.Spec.Title, nil
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
kindTemplateGroup = resource.Kind{
|
||||||
|
Schema: schemaTemplateGroup,
|
||||||
|
Codecs: map[resource.KindEncoding]resource.Codec{
|
||||||
|
resource.KindEncodingJSON: &JSONCodec{},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Kind returns a resource.Kind for this Schema with a JSON codec
|
||||||
|
func Kind() resource.Kind {
|
||||||
|
return kindTemplateGroup
|
||||||
|
}
|
||||||
|
|
||||||
|
// Schema returns a resource.SimpleSchema representation of TemplateGroup
|
||||||
|
func Schema() *resource.SimpleSchema {
|
||||||
|
return schemaTemplateGroup
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance checks
|
||||||
|
var _ resource.Schema = kindTemplateGroup
|
@ -1,8 +1,8 @@
|
|||||||
package v0alpha1
|
package v0alpha1
|
||||||
|
|
||||||
// TemplateGroupSpec defines model for TemplateGroupSpec.
|
// Spec defines model for Spec.
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
type TemplateGroupSpec struct {
|
type Spec struct {
|
||||||
Title string `json:"title"`
|
|
||||||
Content string `json:"content"`
|
Content string `json:"content"`
|
||||||
|
Title string `json:"title"`
|
||||||
}
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
// Defines values for OperatorStateState.
|
||||||
|
const (
|
||||||
|
OperatorStateStateFailed OperatorStateState = "failed"
|
||||||
|
OperatorStateStateInProgress OperatorStateState = "in_progress"
|
||||||
|
OperatorStateStateSuccess OperatorStateState = "success"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Defines values for StatusOperatorStateState.
|
||||||
|
const (
|
||||||
|
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
|
||||||
|
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
|
||||||
|
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OperatorState defines model for OperatorState.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type OperatorState struct {
|
||||||
|
// descriptiveState is an optional more descriptive state field which has no requirements on format
|
||||||
|
DescriptiveState *string `json:"descriptiveState,omitempty"`
|
||||||
|
|
||||||
|
// details contains any extra information that is operator-specific
|
||||||
|
Details map[string]interface{} `json:"details,omitempty"`
|
||||||
|
|
||||||
|
// lastEvaluation is the ResourceVersion last evaluated
|
||||||
|
LastEvaluation string `json:"lastEvaluation"`
|
||||||
|
|
||||||
|
// state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
State OperatorStateState `json:"state"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// OperatorStateState state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type OperatorStateState string
|
||||||
|
|
||||||
|
// Status defines model for Status.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type Status struct {
|
||||||
|
// additionalFields is reserved for future use
|
||||||
|
AdditionalFields map[string]interface{} `json:"additionalFields,omitempty"`
|
||||||
|
|
||||||
|
// operatorStates is a map of operator ID to operator state evaluations.
|
||||||
|
// Any operator which consumes this kind SHOULD add its state evaluation information to this field.
|
||||||
|
OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatusOperatorState defines model for status.#OperatorState.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type StatusOperatorState struct {
|
||||||
|
// descriptiveState is an optional more descriptive state field which has no requirements on format
|
||||||
|
DescriptiveState *string `json:"descriptiveState,omitempty"`
|
||||||
|
|
||||||
|
// details contains any extra information that is operator-specific
|
||||||
|
Details map[string]interface{} `json:"details,omitempty"`
|
||||||
|
|
||||||
|
// lastEvaluation is the ResourceVersion last evaluated
|
||||||
|
LastEvaluation string `json:"lastEvaluation"`
|
||||||
|
|
||||||
|
// state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
State StatusOperatorStateState `json:"state"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatusOperatorStateState state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type StatusOperatorStateState string
|
@ -0,0 +1,294 @@
|
|||||||
|
//go:build !ignore_autogenerated
|
||||||
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
common "k8s.io/kube-openapi/pkg/common"
|
||||||
|
spec "k8s.io/kube-openapi/pkg/validation/spec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
|
||||||
|
return map[string]common.OpenAPIDefinition{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.OperatorState": schema_apis_resource_templategroup_v0alpha1_OperatorState(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Spec": schema_apis_resource_templategroup_v0alpha1_Spec(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Status": schema_apis_resource_templategroup_v0alpha1_Status(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.StatusOperatorState": schema_apis_resource_templategroup_v0alpha1_StatusOperatorState(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.TemplateGroup": schema_apis_resource_templategroup_v0alpha1_TemplateGroup(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.TemplateGroupList": schema_apis_resource_templategroup_v0alpha1_TemplateGroupList(ref),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_templategroup_v0alpha1_OperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "OperatorState defines model for OperatorState.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"descriptiveState": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"details": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "details contains any extra information that is operator-specific",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"lastEvaluation": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "lastEvaluation is the ResourceVersion last evaluated",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"lastEvaluation", "state"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_templategroup_v0alpha1_Spec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Spec defines model for Spec.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"content": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"content", "title"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_templategroup_v0alpha1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Status defines model for Status.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"additionalFields": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "additionalFields is reserved for future use",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"operatorStates": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.StatusOperatorState"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.StatusOperatorState"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_templategroup_v0alpha1_StatusOperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "StatusOperatorState defines model for status.#OperatorState.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"descriptiveState": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"details": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "details contains any extra information that is operator-specific",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"lastEvaluation": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "lastEvaluation is the ResourceVersion last evaluated",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"lastEvaluation", "state"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_templategroup_v0alpha1_TemplateGroup(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"kind": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"apiVersion": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"spec": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Spec"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Status"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"metadata", "spec", "status"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Spec", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_templategroup_v0alpha1_TemplateGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"kind": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"apiVersion": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"items": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.TemplateGroup"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"metadata", "items"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/templategroup/v0alpha1.TemplateGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/fields"
|
||||||
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana/apps/alerting/common"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (o *TimeInterval) GetProvenanceStatus() string {
|
||||||
|
if o == nil || o.Annotations == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
s, ok := o.Annotations[common.ProvenanceStatusAnnotationKey]
|
||||||
|
if !ok || s == "" {
|
||||||
|
return common.ProvenanceStatusNone
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) SetProvenanceStatus(status string) {
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string, 1)
|
||||||
|
}
|
||||||
|
if status == "" {
|
||||||
|
status = common.ProvenanceStatusNone
|
||||||
|
}
|
||||||
|
o.Annotations[common.ProvenanceStatusAnnotationKey] = status
|
||||||
|
}
|
||||||
|
|
||||||
|
func SelectableFields(obj *TimeInterval) fields.Set {
|
||||||
|
if obj == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
selectable := Schema().SelectableFields()
|
||||||
|
set := make(fields.Set, len(selectable))
|
||||||
|
for _, field := range selectable {
|
||||||
|
f, err := field.FieldValueFunc(obj)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
set[field.FieldSelector] = f
|
||||||
|
}
|
||||||
|
return generic.MergeFieldsSets(generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false), set)
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package v0alpha1
|
package fakes
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -7,15 +7,14 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1"
|
||||||
"github.com/grafana/grafana/pkg/util"
|
"github.com/grafana/grafana/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// +k8s:openapi-gen=false
|
// +k8s:openapi-gen=false
|
||||||
// +k8s:deepcopy-gen=false
|
type IntervalMutator func(spec *v0alpha1.Interval)
|
||||||
type IntervalMutator func(spec *Interval)
|
|
||||||
|
|
||||||
// +k8s:openapi-gen=false
|
// +k8s:openapi-gen=false
|
||||||
// +k8s:deepcopy-gen=false
|
|
||||||
type IntervalGenerator struct {
|
type IntervalGenerator struct {
|
||||||
mutators []IntervalMutator
|
mutators []IntervalMutator
|
||||||
}
|
}
|
||||||
@ -36,10 +35,10 @@ func (t IntervalGenerator) generateDaysOfMonth() string {
|
|||||||
return fmt.Sprintf("%d:%d", from, to)
|
return fmt.Sprintf("%d:%d", from, to)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t IntervalGenerator) generateTimeRange() TimeRange {
|
func (t IntervalGenerator) generateTimeRange() v0alpha1.TimeRange {
|
||||||
from := rand.Int63n(1440 / 2) // [0, 719]
|
from := rand.Int63n(1440 / 2) // [0, 719]
|
||||||
to := from + rand.Int63n(1440/2) + 1 // from < ([0,719] + [1,720]) < 1440
|
to := from + rand.Int63n(1440/2) + 1 // from < ([0,719] + [1,720]) < 1440
|
||||||
return TimeRange{
|
return v0alpha1.TimeRange{
|
||||||
StartTime: time.Unix(from*60, 0).UTC().Format("15:04"),
|
StartTime: time.Unix(from*60, 0).UTC().Format("15:04"),
|
||||||
EndTime: time.Unix(to*60, 0).UTC().Format("15:04"),
|
EndTime: time.Unix(to*60, 0).UTC().Format("15:04"),
|
||||||
}
|
}
|
||||||
@ -70,16 +69,16 @@ func (t IntervalGenerator) generateMonth() string {
|
|||||||
return fmt.Sprintf("%d", rand.Intn(12)+1)
|
return fmt.Sprintf("%d", rand.Intn(12)+1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t IntervalGenerator) GenerateMany(count int) []Interval {
|
func (t IntervalGenerator) GenerateMany(count int) []v0alpha1.Interval {
|
||||||
result := make([]Interval, 0, count)
|
result := make([]v0alpha1.Interval, 0, count)
|
||||||
for i := 0; i < count; i++ {
|
for i := 0; i < count; i++ {
|
||||||
result = append(result, t.Generate())
|
result = append(result, t.Generate())
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t IntervalGenerator) Generate() Interval {
|
func (t IntervalGenerator) Generate() v0alpha1.Interval {
|
||||||
i := Interval{
|
i := v0alpha1.Interval{
|
||||||
DaysOfMonth: generateMany(rand.Intn(6), true, t.generateDaysOfMonth),
|
DaysOfMonth: generateMany(rand.Intn(6), true, t.generateDaysOfMonth),
|
||||||
Location: t.generateLocation(),
|
Location: t.generateLocation(),
|
||||||
Months: generateMany(rand.Intn(3), true, t.generateMonth),
|
Months: generateMany(rand.Intn(3), true, t.generateMonth),
|
||||||
@ -105,11 +104,3 @@ func generateMany[T comparable](repeatTimes int, unique bool, f func() T) []T {
|
|||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func CopyWith(in Interval, mutators ...IntervalMutator) Interval {
|
|
||||||
r := *in.DeepCopy()
|
|
||||||
for _, mut := range mutators {
|
|
||||||
mut(&r)
|
|
||||||
}
|
|
||||||
return r
|
|
||||||
}
|
|
@ -0,0 +1,28 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"io"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
)
|
||||||
|
|
||||||
|
// JSONCodec is an implementation of resource.Codec for kubernetes JSON encoding
|
||||||
|
type JSONCodec struct{}
|
||||||
|
|
||||||
|
// Read reads JSON-encoded bytes from `reader` and unmarshals them into `into`
|
||||||
|
func (*JSONCodec) Read(reader io.Reader, into resource.Object) error {
|
||||||
|
return json.NewDecoder(reader).Decode(into)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write writes JSON-encoded bytes into `writer` marshaled from `from`
|
||||||
|
func (*JSONCodec) Write(writer io.Writer, from resource.Object) error {
|
||||||
|
return json.NewEncoder(writer).Encode(from)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance checks
|
||||||
|
var _ resource.Codec = &JSONCodec{}
|
@ -0,0 +1,32 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Metadata defines model for Metadata.
|
||||||
|
type Metadata struct {
|
||||||
|
CreatedBy string `json:"createdBy"`
|
||||||
|
CreationTimestamp time.Time `json:"creationTimestamp"`
|
||||||
|
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
|
||||||
|
Finalizers []string `json:"finalizers"`
|
||||||
|
Generation int64 `json:"generation"`
|
||||||
|
Labels map[string]string `json:"labels"`
|
||||||
|
ResourceVersion string `json:"resourceVersion"`
|
||||||
|
Uid string `json:"uid"`
|
||||||
|
UpdateTimestamp time.Time `json:"updateTimestamp"`
|
||||||
|
UpdatedBy string `json:"updatedBy"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// _kubeObjectMetadata is metadata found in a kubernetes object's metadata field.
|
||||||
|
// It is not exhaustive and only includes fields which may be relevant to a kind's implementation,
|
||||||
|
// As it is also intended to be generic enough to function with any API Server.
|
||||||
|
type KubeObjectMetadata struct {
|
||||||
|
CreationTimestamp time.Time `json:"creationTimestamp"`
|
||||||
|
DeletionTimestamp *time.Time `json:"deletionTimestamp,omitempty"`
|
||||||
|
Finalizers []string `json:"finalizers"`
|
||||||
|
Generation int64 `json:"generation"`
|
||||||
|
Labels map[string]string `json:"labels"`
|
||||||
|
ResourceVersion string `json:"resourceVersion"`
|
||||||
|
Uid string `json:"uid"`
|
||||||
|
}
|
@ -0,0 +1,266 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type TimeInterval struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ObjectMeta `json:"metadata"`
|
||||||
|
Spec Spec `json:"spec"`
|
||||||
|
Status Status `json:"status"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) GetSpec() any {
|
||||||
|
return o.Spec
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) SetSpec(spec any) error {
|
||||||
|
cast, ok := spec.(Spec)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
|
||||||
|
}
|
||||||
|
o.Spec = cast
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) GetSubresources() map[string]any {
|
||||||
|
return map[string]any{
|
||||||
|
"status": o.Status,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) GetSubresource(name string) (any, bool) {
|
||||||
|
switch name {
|
||||||
|
case "status":
|
||||||
|
return o.Status, true
|
||||||
|
default:
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) SetSubresource(name string, value any) error {
|
||||||
|
switch name {
|
||||||
|
case "status":
|
||||||
|
cast, ok := value.(Status)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("cannot set status type %#v, not of type Status", value)
|
||||||
|
}
|
||||||
|
o.Status = cast
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("subresource '%s' does not exist", name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) GetStaticMetadata() resource.StaticMetadata {
|
||||||
|
gvk := o.GroupVersionKind()
|
||||||
|
return resource.StaticMetadata{
|
||||||
|
Name: o.ObjectMeta.Name,
|
||||||
|
Namespace: o.ObjectMeta.Namespace,
|
||||||
|
Group: gvk.Group,
|
||||||
|
Version: gvk.Version,
|
||||||
|
Kind: gvk.Kind,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) SetStaticMetadata(metadata resource.StaticMetadata) {
|
||||||
|
o.Name = metadata.Name
|
||||||
|
o.Namespace = metadata.Namespace
|
||||||
|
o.SetGroupVersionKind(schema.GroupVersionKind{
|
||||||
|
Group: metadata.Group,
|
||||||
|
Version: metadata.Version,
|
||||||
|
Kind: metadata.Kind,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) GetCommonMetadata() resource.CommonMetadata {
|
||||||
|
dt := o.DeletionTimestamp
|
||||||
|
var deletionTimestamp *time.Time
|
||||||
|
if dt != nil {
|
||||||
|
deletionTimestamp = &dt.Time
|
||||||
|
}
|
||||||
|
// Legacy ExtraFields support
|
||||||
|
extraFields := make(map[string]any)
|
||||||
|
if o.Annotations != nil {
|
||||||
|
extraFields["annotations"] = o.Annotations
|
||||||
|
}
|
||||||
|
if o.ManagedFields != nil {
|
||||||
|
extraFields["managedFields"] = o.ManagedFields
|
||||||
|
}
|
||||||
|
if o.OwnerReferences != nil {
|
||||||
|
extraFields["ownerReferences"] = o.OwnerReferences
|
||||||
|
}
|
||||||
|
return resource.CommonMetadata{
|
||||||
|
UID: string(o.UID),
|
||||||
|
ResourceVersion: o.ResourceVersion,
|
||||||
|
Generation: o.Generation,
|
||||||
|
Labels: o.Labels,
|
||||||
|
CreationTimestamp: o.CreationTimestamp.Time,
|
||||||
|
DeletionTimestamp: deletionTimestamp,
|
||||||
|
Finalizers: o.Finalizers,
|
||||||
|
UpdateTimestamp: o.GetUpdateTimestamp(),
|
||||||
|
CreatedBy: o.GetCreatedBy(),
|
||||||
|
UpdatedBy: o.GetUpdatedBy(),
|
||||||
|
ExtraFields: extraFields,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) SetCommonMetadata(metadata resource.CommonMetadata) {
|
||||||
|
o.UID = types.UID(metadata.UID)
|
||||||
|
o.ResourceVersion = metadata.ResourceVersion
|
||||||
|
o.Generation = metadata.Generation
|
||||||
|
o.Labels = metadata.Labels
|
||||||
|
o.CreationTimestamp = metav1.NewTime(metadata.CreationTimestamp)
|
||||||
|
if metadata.DeletionTimestamp != nil {
|
||||||
|
dt := metav1.NewTime(*metadata.DeletionTimestamp)
|
||||||
|
o.DeletionTimestamp = &dt
|
||||||
|
} else {
|
||||||
|
o.DeletionTimestamp = nil
|
||||||
|
}
|
||||||
|
o.Finalizers = metadata.Finalizers
|
||||||
|
if o.Annotations == nil {
|
||||||
|
o.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
if !metadata.UpdateTimestamp.IsZero() {
|
||||||
|
o.SetUpdateTimestamp(metadata.UpdateTimestamp)
|
||||||
|
}
|
||||||
|
if metadata.CreatedBy != "" {
|
||||||
|
o.SetCreatedBy(metadata.CreatedBy)
|
||||||
|
}
|
||||||
|
if metadata.UpdatedBy != "" {
|
||||||
|
o.SetUpdatedBy(metadata.UpdatedBy)
|
||||||
|
}
|
||||||
|
// Legacy support for setting Annotations, ManagedFields, and OwnerReferences via ExtraFields
|
||||||
|
if metadata.ExtraFields != nil {
|
||||||
|
if annotations, ok := metadata.ExtraFields["annotations"]; ok {
|
||||||
|
if cast, ok := annotations.(map[string]string); ok {
|
||||||
|
o.Annotations = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if managedFields, ok := metadata.ExtraFields["managedFields"]; ok {
|
||||||
|
if cast, ok := managedFields.([]metav1.ManagedFieldsEntry); ok {
|
||||||
|
o.ManagedFields = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ownerReferences, ok := metadata.ExtraFields["ownerReferences"]; ok {
|
||||||
|
if cast, ok := ownerReferences.([]metav1.OwnerReference); ok {
|
||||||
|
o.OwnerReferences = cast
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) GetCreatedBy() string {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) SetCreatedBy(createdBy string) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) GetUpdateTimestamp() time.Time {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
|
||||||
|
return parsed
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) SetUpdateTimestamp(updateTimestamp time.Time) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) GetUpdatedBy() string {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) SetUpdatedBy(updatedBy string) {
|
||||||
|
if o.ObjectMeta.Annotations == nil {
|
||||||
|
o.ObjectMeta.Annotations = make(map[string]string)
|
||||||
|
}
|
||||||
|
|
||||||
|
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) Copy() resource.Object {
|
||||||
|
return resource.CopyObject(o)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeInterval) DeepCopyObject() runtime.Object {
|
||||||
|
return o.Copy()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance compile-time check
|
||||||
|
var _ resource.Object = &TimeInterval{}
|
||||||
|
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type TimeIntervalList struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ListMeta `json:"metadata"`
|
||||||
|
Items []TimeInterval `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeIntervalList) DeepCopyObject() runtime.Object {
|
||||||
|
return o.Copy()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeIntervalList) Copy() resource.ListObject {
|
||||||
|
cpy := &TimeIntervalList{
|
||||||
|
TypeMeta: o.TypeMeta,
|
||||||
|
Items: make([]TimeInterval, len(o.Items)),
|
||||||
|
}
|
||||||
|
o.ListMeta.DeepCopyInto(&cpy.ListMeta)
|
||||||
|
for i := 0; i < len(o.Items); i++ {
|
||||||
|
if item, ok := o.Items[i].Copy().(*TimeInterval); ok {
|
||||||
|
cpy.Items[i] = *item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cpy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeIntervalList) GetItems() []resource.Object {
|
||||||
|
items := make([]resource.Object, len(o.Items))
|
||||||
|
for i := 0; i < len(o.Items); i++ {
|
||||||
|
items[i] = &o.Items[i]
|
||||||
|
}
|
||||||
|
return items
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *TimeIntervalList) SetItems(items []resource.Object) {
|
||||||
|
o.Items = make([]TimeInterval, len(items))
|
||||||
|
for i := 0; i < len(items); i++ {
|
||||||
|
o.Items[i] = *items[i].(*TimeInterval)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance compile-time check
|
||||||
|
var _ resource.ListObject = &TimeIntervalList{}
|
@ -0,0 +1,46 @@
|
|||||||
|
//
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
//
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana-app-sdk/resource"
|
||||||
|
)
|
||||||
|
|
||||||
|
// schema is unexported to prevent accidental overwrites
|
||||||
|
var (
|
||||||
|
schemaTimeInterval = resource.NewSimpleSchema("notifications.alerting.grafana.app", "v0alpha1", &TimeInterval{}, &TimeIntervalList{}, resource.WithKind("TimeInterval"),
|
||||||
|
resource.WithPlural("timeintervals"), resource.WithScope(resource.NamespacedScope), resource.WithSelectableFields([]resource.SelectableField{resource.SelectableField{
|
||||||
|
FieldSelector: "spec.name",
|
||||||
|
FieldValueFunc: func(o resource.Object) (string, error) {
|
||||||
|
cast, ok := o.(*TimeInterval)
|
||||||
|
if !ok {
|
||||||
|
return "", fmt.Errorf("provided object must be of type *TimeInterval")
|
||||||
|
}
|
||||||
|
return cast.Spec.Name, nil
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
kindTimeInterval = resource.Kind{
|
||||||
|
Schema: schemaTimeInterval,
|
||||||
|
Codecs: map[resource.KindEncoding]resource.Codec{
|
||||||
|
resource.KindEncodingJSON: &JSONCodec{},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Kind returns a resource.Kind for this Schema with a JSON codec
|
||||||
|
func Kind() resource.Kind {
|
||||||
|
return kindTimeInterval
|
||||||
|
}
|
||||||
|
|
||||||
|
// Schema returns a resource.SimpleSchema representation of TimeInterval
|
||||||
|
func Schema() *resource.SimpleSchema {
|
||||||
|
return schemaTimeInterval
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface compliance checks
|
||||||
|
var _ resource.Schema = kindTimeInterval
|
@ -0,0 +1,26 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
// Interval defines model for Interval.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type Interval struct {
|
||||||
|
DaysOfMonth []string `json:"days_of_month,omitempty"`
|
||||||
|
Location *string `json:"location,omitempty"`
|
||||||
|
Months []string `json:"months,omitempty"`
|
||||||
|
Times []TimeRange `json:"times,omitempty"`
|
||||||
|
Weekdays []string `json:"weekdays,omitempty"`
|
||||||
|
Years []string `json:"years,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spec defines model for Spec.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type Spec struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
TimeIntervals []Interval `json:"time_intervals"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// TimeRange defines model for TimeRange.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type TimeRange struct {
|
||||||
|
EndTime string `json:"end_time"`
|
||||||
|
StartTime string `json:"start_time"`
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
// Defines values for OperatorStateState.
|
||||||
|
const (
|
||||||
|
OperatorStateStateFailed OperatorStateState = "failed"
|
||||||
|
OperatorStateStateInProgress OperatorStateState = "in_progress"
|
||||||
|
OperatorStateStateSuccess OperatorStateState = "success"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Defines values for StatusOperatorStateState.
|
||||||
|
const (
|
||||||
|
StatusOperatorStateStateFailed StatusOperatorStateState = "failed"
|
||||||
|
StatusOperatorStateStateInProgress StatusOperatorStateState = "in_progress"
|
||||||
|
StatusOperatorStateStateSuccess StatusOperatorStateState = "success"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OperatorState defines model for OperatorState.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type OperatorState struct {
|
||||||
|
// descriptiveState is an optional more descriptive state field which has no requirements on format
|
||||||
|
DescriptiveState *string `json:"descriptiveState,omitempty"`
|
||||||
|
|
||||||
|
// details contains any extra information that is operator-specific
|
||||||
|
Details map[string]interface{} `json:"details,omitempty"`
|
||||||
|
|
||||||
|
// lastEvaluation is the ResourceVersion last evaluated
|
||||||
|
LastEvaluation string `json:"lastEvaluation"`
|
||||||
|
|
||||||
|
// state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
State OperatorStateState `json:"state"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// OperatorStateState state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type OperatorStateState string
|
||||||
|
|
||||||
|
// Status defines model for Status.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type Status struct {
|
||||||
|
// additionalFields is reserved for future use
|
||||||
|
AdditionalFields map[string]interface{} `json:"additionalFields,omitempty"`
|
||||||
|
|
||||||
|
// operatorStates is a map of operator ID to operator state evaluations.
|
||||||
|
// Any operator which consumes this kind SHOULD add its state evaluation information to this field.
|
||||||
|
OperatorStates map[string]StatusOperatorState `json:"operatorStates,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatusOperatorState defines model for status.#OperatorState.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type StatusOperatorState struct {
|
||||||
|
// descriptiveState is an optional more descriptive state field which has no requirements on format
|
||||||
|
DescriptiveState *string `json:"descriptiveState,omitempty"`
|
||||||
|
|
||||||
|
// details contains any extra information that is operator-specific
|
||||||
|
Details map[string]interface{} `json:"details,omitempty"`
|
||||||
|
|
||||||
|
// lastEvaluation is the ResourceVersion last evaluated
|
||||||
|
LastEvaluation string `json:"lastEvaluation"`
|
||||||
|
|
||||||
|
// state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
State StatusOperatorStateState `json:"state"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatusOperatorStateState state describes the state of the lastEvaluation.
|
||||||
|
// It is limited to three possible states for machine evaluation.
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
type StatusOperatorStateState string
|
@ -0,0 +1,422 @@
|
|||||||
|
//go:build !ignore_autogenerated
|
||||||
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
|
// Code generated by grafana-app-sdk. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v0alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
common "k8s.io/kube-openapi/pkg/common"
|
||||||
|
spec "k8s.io/kube-openapi/pkg/validation/spec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
|
||||||
|
return map[string]common.OpenAPIDefinition{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Interval": schema_apis_resource_timeinterval_v0alpha1_Interval(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.OperatorState": schema_apis_resource_timeinterval_v0alpha1_OperatorState(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Spec": schema_apis_resource_timeinterval_v0alpha1_Spec(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Status": schema_apis_resource_timeinterval_v0alpha1_Status(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.StatusOperatorState": schema_apis_resource_timeinterval_v0alpha1_StatusOperatorState(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeInterval": schema_apis_resource_timeinterval_v0alpha1_TimeInterval(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeIntervalList": schema_apis_resource_timeinterval_v0alpha1_TimeIntervalList(ref),
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeRange": schema_apis_resource_timeinterval_v0alpha1_TimeRange(ref),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_timeinterval_v0alpha1_Interval(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Interval defines model for Interval.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"days_of_month": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"location": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"months": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"times": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeRange"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"weekdays": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"years": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeRange"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_timeinterval_v0alpha1_OperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "OperatorState defines model for OperatorState.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"descriptiveState": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"details": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "details contains any extra information that is operator-specific",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"lastEvaluation": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "lastEvaluation is the ResourceVersion last evaluated",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"lastEvaluation", "state"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_timeinterval_v0alpha1_Spec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Spec defines model for Spec.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"name": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"time_intervals": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Interval"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"name", "time_intervals"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Interval"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_timeinterval_v0alpha1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Status defines model for Status.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"additionalFields": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "additionalFields is reserved for future use",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"operatorStates": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "operatorStates is a map of operator ID to operator state evaluations. Any operator which consumes this kind SHOULD add its state evaluation information to this field.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.StatusOperatorState"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.StatusOperatorState"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_timeinterval_v0alpha1_StatusOperatorState(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "StatusOperatorState defines model for status.#OperatorState.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"descriptiveState": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "descriptiveState is an optional more descriptive state field which has no requirements on format",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"details": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "details contains any extra information that is operator-specific",
|
||||||
|
Type: []string{"object"},
|
||||||
|
AdditionalProperties: &spec.SchemaOrBool{
|
||||||
|
Allows: true,
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"lastEvaluation": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "lastEvaluation is the ResourceVersion last evaluated",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "state describes the state of the lastEvaluation. It is limited to three possible states for machine evaluation.",
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"lastEvaluation", "state"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_timeinterval_v0alpha1_TimeInterval(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"kind": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"apiVersion": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"spec": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Spec"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Status"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"metadata", "spec", "status"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Spec", "github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_timeinterval_v0alpha1_TimeIntervalList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"kind": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"apiVersion": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"items": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Type: []string{"array"},
|
||||||
|
Items: &spec.SchemaOrArray{
|
||||||
|
Schema: &spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: map[string]interface{}{},
|
||||||
|
Ref: ref("github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeInterval"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"metadata", "items"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Dependencies: []string{
|
||||||
|
"github.com/grafana/grafana/apps/alerting/notifications/pkg/apis/resource/timeinterval/v0alpha1.TimeInterval", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func schema_apis_resource_timeinterval_v0alpha1_TimeRange(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||||
|
return common.OpenAPIDefinition{
|
||||||
|
Schema: spec.Schema{
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "TimeRange defines model for TimeRange.",
|
||||||
|
Type: []string{"object"},
|
||||||
|
Properties: map[string]spec.Schema{
|
||||||
|
"end_time": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"start_time": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Default: "",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Required: []string{"end_time", "start_time"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
5
apps/alerting/notifications/pkg/apis/resource/type.go
Normal file
5
apps/alerting/notifications/pkg/apis/resource/type.go
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package resource
|
||||||
|
|
||||||
|
import "k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
|
||||||
|
var GroupVersion = schema.GroupVersion{Group: "notifications.alerting.grafana.app", Version: "v0alpha1"}
|
1
go.work
1
go.work
@ -5,6 +5,7 @@ go 1.23.1
|
|||||||
|
|
||||||
use (
|
use (
|
||||||
. // skip:golangci-lint
|
. // skip:golangci-lint
|
||||||
|
./apps/alerting/notifications
|
||||||
./apps/playlist
|
./apps/playlist
|
||||||
./kindsv2
|
./kindsv2
|
||||||
./pkg/aggregator
|
./pkg/aggregator
|
||||||
|
23
go.work.sum
23
go.work.sum
@ -623,6 +623,7 @@ github.com/andybalholm/stroke v0.0.0-20221221101821-bd29b49d73f0/go.mod h1:ccdDY
|
|||||||
github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg=
|
github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg=
|
||||||
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9 h1:goHVqTbFX3AIo0tzGr14pgfAW2ZfPChKO21Z9MGf/gk=
|
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9 h1:goHVqTbFX3AIo0tzGr14pgfAW2ZfPChKO21Z9MGf/gk=
|
||||||
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
|
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
|
||||||
|
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
|
||||||
github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 h1:q4dksr6ICHXqG5hm0ZW5IHyeEJXoIJSOZeBLmWPNeIQ=
|
github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 h1:q4dksr6ICHXqG5hm0ZW5IHyeEJXoIJSOZeBLmWPNeIQ=
|
||||||
github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs=
|
github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs=
|
||||||
github.com/apache/arrow/go/v10 v10.0.1 h1:n9dERvixoC/1JjDmBcs9FPaEryoANa2sCgVFo6ez9cI=
|
github.com/apache/arrow/go/v10 v10.0.1 h1:n9dERvixoC/1JjDmBcs9FPaEryoANa2sCgVFo6ez9cI=
|
||||||
@ -960,6 +961,7 @@ github.com/gomarkdown/markdown v0.0.0-20230922112808-5421fefb8386/go.mod h1:JDGc
|
|||||||
github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
||||||
github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws=
|
github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws=
|
||||||
github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
|
github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
|
||||||
|
github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg=
|
||||||
github.com/google/go-jsonnet v0.18.0 h1:/6pTy6g+Jh1a1I2UMoAODkqELFiVIdOxbNwv0DDzoOg=
|
github.com/google/go-jsonnet v0.18.0 h1:/6pTy6g+Jh1a1I2UMoAODkqELFiVIdOxbNwv0DDzoOg=
|
||||||
github.com/google/go-jsonnet v0.18.0/go.mod h1:C3fTzyVJDslXdiTqw/bTFk7vSGyCtH3MGRbDfvEwGd0=
|
github.com/google/go-jsonnet v0.18.0/go.mod h1:C3fTzyVJDslXdiTqw/bTFk7vSGyCtH3MGRbDfvEwGd0=
|
||||||
github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9 h1:OF1IPgv+F4NmqmJ98KTjdN97Vs1JxDPB3vbmYzV2dpk=
|
github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9 h1:OF1IPgv+F4NmqmJ98KTjdN97Vs1JxDPB3vbmYzV2dpk=
|
||||||
@ -987,7 +989,6 @@ github.com/grafana/alerting v0.0.0-20240830172655-aa466962ea18 h1:3cQ+d+fkNL2Eqp
|
|||||||
github.com/grafana/alerting v0.0.0-20240830172655-aa466962ea18/go.mod h1:GMLi6d09Xqo96fCVUjNk//rcjP5NKEdjOzfWIffD5r4=
|
github.com/grafana/alerting v0.0.0-20240830172655-aa466962ea18/go.mod h1:GMLi6d09Xqo96fCVUjNk//rcjP5NKEdjOzfWIffD5r4=
|
||||||
github.com/grafana/alerting v0.0.0-20240917171353-6c25eb6eff10 h1:oDbLKM34O+JUF9EQFS+9aYhdYoeNfUpXqNjFCLIxwF4=
|
github.com/grafana/alerting v0.0.0-20240917171353-6c25eb6eff10 h1:oDbLKM34O+JUF9EQFS+9aYhdYoeNfUpXqNjFCLIxwF4=
|
||||||
github.com/grafana/alerting v0.0.0-20240917171353-6c25eb6eff10/go.mod h1:GMLi6d09Xqo96fCVUjNk//rcjP5NKEdjOzfWIffD5r4=
|
github.com/grafana/alerting v0.0.0-20240917171353-6c25eb6eff10/go.mod h1:GMLi6d09Xqo96fCVUjNk//rcjP5NKEdjOzfWIffD5r4=
|
||||||
github.com/grafana/authlib/claims v0.0.0-20241202085737-df90af04f335 h1:3DHH81RJCi8Bcgn2MdBh7vgWUshmAFjZzBCVuxiQ0uk=
|
|
||||||
github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2 h1:qhugDMdQ4Vp68H0tp/0iN17DM2ehRo1rLEdOFe/gB8I=
|
github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2 h1:qhugDMdQ4Vp68H0tp/0iN17DM2ehRo1rLEdOFe/gB8I=
|
||||||
github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2/go.mod h1:w/aiO1POVIeXUQyl0VQSZjl5OAGDTL5aX+4v0RA1tcw=
|
github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2/go.mod h1:w/aiO1POVIeXUQyl0VQSZjl5OAGDTL5aX+4v0RA1tcw=
|
||||||
github.com/grafana/cog v0.0.4/go.mod h1:lzetOuhGUl/JaSACiJoHvBokf9/fS6PEFaWZvnQu2vs=
|
github.com/grafana/cog v0.0.4/go.mod h1:lzetOuhGUl/JaSACiJoHvBokf9/fS6PEFaWZvnQu2vs=
|
||||||
@ -1002,8 +1003,6 @@ github.com/grafana/go-json v0.0.0-20241115232854-f14426c40ff2 h1:8xGrYqQ1GM4aaMk
|
|||||||
github.com/grafana/go-json v0.0.0-20241115232854-f14426c40ff2/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
|
github.com/grafana/go-json v0.0.0-20241115232854-f14426c40ff2/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
|
||||||
github.com/grafana/gomemcache v0.0.0-20240229205252-cd6a66d6fb56/go.mod h1:PGk3RjYHpxMM8HFPhKKo+vve3DdlPUELZLSDEFehPuU=
|
github.com/grafana/gomemcache v0.0.0-20240229205252-cd6a66d6fb56/go.mod h1:PGk3RjYHpxMM8HFPhKKo+vve3DdlPUELZLSDEFehPuU=
|
||||||
github.com/grafana/grafana-app-sdk v0.19.0/go.mod h1:y0BgzYxc+a7CwOqkwUhN9zXd5cgZJjd2zAbgHEd/xzo=
|
github.com/grafana/grafana-app-sdk v0.19.0/go.mod h1:y0BgzYxc+a7CwOqkwUhN9zXd5cgZJjd2zAbgHEd/xzo=
|
||||||
github.com/grafana/grafana-plugin-sdk-go v0.260.1 h1:KzbooQP9mv/9CPsn+SoUwGuomA8oUxO0iuIq6Rg/ekE=
|
|
||||||
github.com/grafana/grafana-plugin-sdk-go v0.260.1/go.mod h1:JriieK5Oc5v120QKhMs/LO55N0P3YI2ttEiVT1wfYsw=
|
|
||||||
github.com/grafana/pyroscope-go/godeltaprof v0.1.6/go.mod h1:Tk376Nbldo4Cha9RgiU7ik8WKFkNpfds98aUzS8omLE=
|
github.com/grafana/pyroscope-go/godeltaprof v0.1.6/go.mod h1:Tk376Nbldo4Cha9RgiU7ik8WKFkNpfds98aUzS8omLE=
|
||||||
github.com/grafana/tail v0.0.0-20230510142333-77b18831edf0 h1:bjh0PVYSVVFxzINqPFYJmAmJNrWPgnVjuSdYJGHmtFU=
|
github.com/grafana/tail v0.0.0-20230510142333-77b18831edf0 h1:bjh0PVYSVVFxzINqPFYJmAmJNrWPgnVjuSdYJGHmtFU=
|
||||||
github.com/grafana/tail v0.0.0-20230510142333-77b18831edf0/go.mod h1:7t5XR+2IA8P2qggOAHTj/GCZfoLBle3OvNSYh1VkRBU=
|
github.com/grafana/tail v0.0.0-20230510142333-77b18831edf0/go.mod h1:7t5XR+2IA8P2qggOAHTj/GCZfoLBle3OvNSYh1VkRBU=
|
||||||
@ -1385,7 +1384,9 @@ github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:Om
|
|||||||
github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc=
|
github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc=
|
||||||
github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI=
|
github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI=
|
||||||
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
|
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
|
||||||
|
github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
|
||||||
github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
|
github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
|
||||||
|
github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw=
|
||||||
github.com/prometheus/common/assets v0.2.0 h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/5AahrSrfM=
|
github.com/prometheus/common/assets v0.2.0 h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/5AahrSrfM=
|
||||||
github.com/prometheus/exporter-toolkit v0.10.1-0.20230714054209-2f4150c63f97/go.mod h1:LoBCZeRh+5hX+fSULNyFnagYlQG/gBsyA/deNzROkq8=
|
github.com/prometheus/exporter-toolkit v0.10.1-0.20230714054209-2f4150c63f97/go.mod h1:LoBCZeRh+5hX+fSULNyFnagYlQG/gBsyA/deNzROkq8=
|
||||||
github.com/prometheus/statsd_exporter v0.26.0 h1:SQl3M6suC6NWQYEzOvIv+EF6dAMYEqIuZy+o4H9F5Ig=
|
github.com/prometheus/statsd_exporter v0.26.0 h1:SQl3M6suC6NWQYEzOvIv+EF6dAMYEqIuZy+o4H9F5Ig=
|
||||||
@ -1443,12 +1444,11 @@ github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB
|
|||||||
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
|
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
|
||||||
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
|
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
|
||||||
github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad h1:fiWzISvDn0Csy5H0iwgAuJGQTUpVfEMJJd4nRFXogbc=
|
github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad h1:fiWzISvDn0Csy5H0iwgAuJGQTUpVfEMJJd4nRFXogbc=
|
||||||
|
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
|
||||||
github.com/stoewer/parquet-cli v0.0.7 h1:rhdZODIbyMS3twr4OM3am8BPPT5pbfMcHLH93whDM5o=
|
github.com/stoewer/parquet-cli v0.0.7 h1:rhdZODIbyMS3twr4OM3am8BPPT5pbfMcHLH93whDM5o=
|
||||||
github.com/stoewer/parquet-cli v0.0.7/go.mod h1:bskxHdj8q3H1EmfuCqjViFoeO3NEvs5lzZAQvI8Nfjk=
|
github.com/stoewer/parquet-cli v0.0.7/go.mod h1:bskxHdj8q3H1EmfuCqjViFoeO3NEvs5lzZAQvI8Nfjk=
|
||||||
github.com/streadway/amqp v1.0.0 h1:kuuDrUJFZL1QYL9hUNuCxNObNzB0bV/ZG5jV3RWAQgo=
|
github.com/streadway/amqp v1.0.0 h1:kuuDrUJFZL1QYL9hUNuCxNObNzB0bV/ZG5jV3RWAQgo=
|
||||||
github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e h1:mOtuXaRAbVZsxAHVdPR3IjfmN8T1h2iczJLynhLybf8=
|
github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e h1:mOtuXaRAbVZsxAHVdPR3IjfmN8T1h2iczJLynhLybf8=
|
||||||
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/substrait-io/substrait-go v0.4.2 h1:buDnjsb3qAqTaNbOR7VKmNgXf4lYQxWEcnSGUWBtmN8=
|
github.com/substrait-io/substrait-go v0.4.2 h1:buDnjsb3qAqTaNbOR7VKmNgXf4lYQxWEcnSGUWBtmN8=
|
||||||
github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
|
github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
|
||||||
github.com/tdewolff/minify/v2 v2.12.9 h1:dvn5MtmuQ/DFMwqf5j8QhEVpPX6fi3WGImhv8RUB4zA=
|
github.com/tdewolff/minify/v2 v2.12.9 h1:dvn5MtmuQ/DFMwqf5j8QhEVpPX6fi3WGImhv8RUB4zA=
|
||||||
@ -1695,12 +1695,12 @@ go.opentelemetry.io/contrib/exporters/autoexport v0.53.0 h1:13K+tY7E8GJInkrvRiPA
|
|||||||
go.opentelemetry.io/contrib/exporters/autoexport v0.53.0/go.mod h1:lyQF6xQ4iDnMg4sccNdFs1zf62xd79YI8vZqKjOTwMs=
|
go.opentelemetry.io/contrib/exporters/autoexport v0.53.0/go.mod h1:lyQF6xQ4iDnMg4sccNdFs1zf62xd79YI8vZqKjOTwMs=
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0/go.mod h1:BMsdeOxN04K0L5FNUBfjFdvwWGNe/rkmSwH4Aelu/X0=
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0/go.mod h1:BMsdeOxN04K0L5FNUBfjFdvwWGNe/rkmSwH4Aelu/X0=
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.53.0/go.mod h1:ImRBLMJv177/pwiLZ7tU7HDGNdBv7rS0HQ99eN/zBl8=
|
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.53.0/go.mod h1:ImRBLMJv177/pwiLZ7tU7HDGNdBv7rS0HQ99eN/zBl8=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0/go.mod h1:qxuZLtbq5QDtdeSHsS7bcf6EH6uO6jUAgk764zd3rhM=
|
||||||
go.opentelemetry.io/contrib/propagators/b3 v1.23.0 h1:aaIGWc5JdfRGpCafLRxMJbD65MfTa206AwSKkvGS0Hg=
|
go.opentelemetry.io/contrib/propagators/b3 v1.23.0 h1:aaIGWc5JdfRGpCafLRxMJbD65MfTa206AwSKkvGS0Hg=
|
||||||
go.opentelemetry.io/contrib/propagators/b3 v1.23.0/go.mod h1:Gyz7V7XghvwTq+mIhLFlTgcc03UDroOg8vezs4NLhwU=
|
go.opentelemetry.io/contrib/propagators/b3 v1.23.0/go.mod h1:Gyz7V7XghvwTq+mIhLFlTgcc03UDroOg8vezs4NLhwU=
|
||||||
go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0=
|
go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0=
|
||||||
go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E=
|
go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E=
|
||||||
go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4=
|
go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4=
|
||||||
go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
|
|
||||||
go.opentelemetry.io/otel/bridge/opencensus v1.26.0 h1:DZzxj9QjznMVoehskOJnFP2gsTCWtDTFBDvFhPAY7nc=
|
go.opentelemetry.io/otel/bridge/opencensus v1.26.0 h1:DZzxj9QjznMVoehskOJnFP2gsTCWtDTFBDvFhPAY7nc=
|
||||||
go.opentelemetry.io/otel/bridge/opencensus v1.26.0/go.mod h1:rJiX0KrF5m8Tm1XE8jLczpAv5zUaDcvhKecFG0ZoFG4=
|
go.opentelemetry.io/otel/bridge/opencensus v1.26.0/go.mod h1:rJiX0KrF5m8Tm1XE8jLczpAv5zUaDcvhKecFG0ZoFG4=
|
||||||
go.opentelemetry.io/otel/bridge/opencensus v1.27.0 h1:ao9aGGHd+G4YfjBpGs6vbkvt5hoC67STlJA9fCnOAcs=
|
go.opentelemetry.io/otel/bridge/opencensus v1.27.0 h1:ao9aGGHd+G4YfjBpGs6vbkvt5hoC67STlJA9fCnOAcs=
|
||||||
@ -1715,9 +1715,11 @@ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.23.1 h1:q/N
|
|||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.23.1/go.mod h1:DTE9yAu6r08jU3xa68GiSeI7oRcSEQ2RpKbbQGO+dWM=
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.23.1/go.mod h1:DTE9yAu6r08jU3xa68GiSeI7oRcSEQ2RpKbbQGO+dWM=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.28.0 h1:aLmmtjRke7LPDQ3lvpFz+kNEH43faFhzW7v8BFIEydg=
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.28.0 h1:aLmmtjRke7LPDQ3lvpFz+kNEH43faFhzW7v8BFIEydg=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.28.0/go.mod h1:TC1pyCt6G9Sjb4bQpShH+P5R53pO6ZuGnHuuln9xMeE=
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.28.0/go.mod h1:TC1pyCt6G9Sjb4bQpShH+P5R53pO6ZuGnHuuln9xMeE=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.28.0/go.mod h1:QWFXnDavXWwMx2EEcZsf3yxgEKAqsxQ+Syjp+seyInw=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.28.0/go.mod h1:QWFXnDavXWwMx2EEcZsf3yxgEKAqsxQ+Syjp+seyInw=
|
||||||
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o=
|
||||||
go.opentelemetry.io/otel/exporters/prometheus v0.46.0 h1:I8WIFXR351FoLJYuloU4EgXbtNX2URfU/85pUPheIEQ=
|
go.opentelemetry.io/otel/exporters/prometheus v0.46.0 h1:I8WIFXR351FoLJYuloU4EgXbtNX2URfU/85pUPheIEQ=
|
||||||
go.opentelemetry.io/otel/exporters/prometheus v0.46.0/go.mod h1:ztwVUHe5DTR/1v7PeuGRnU5Bbd4QKYwApWmuutKsJSs=
|
go.opentelemetry.io/otel/exporters/prometheus v0.46.0/go.mod h1:ztwVUHe5DTR/1v7PeuGRnU5Bbd4QKYwApWmuutKsJSs=
|
||||||
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 h1:2Ewsda6hejmbhGFyUvWZjUThC98Cf8Zy6g0zkIimOng=
|
go.opentelemetry.io/otel/exporters/prometheus v0.50.0 h1:2Ewsda6hejmbhGFyUvWZjUThC98Cf8Zy6g0zkIimOng=
|
||||||
@ -1743,7 +1745,6 @@ go.opentelemetry.io/otel/sdk/metric v1.26.0/go.mod h1:ClMFFknnThJCksebJwz7KIyEDH
|
|||||||
go.opentelemetry.io/otel/sdk/metric v1.28.0 h1:OkuaKgKrgAbYrrY0t92c+cC+2F6hsFNnCQArXCKlg08=
|
go.opentelemetry.io/otel/sdk/metric v1.28.0 h1:OkuaKgKrgAbYrrY0t92c+cC+2F6hsFNnCQArXCKlg08=
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.28.0/go.mod h1:cWPjykihLAPvXKi4iZc1dpER3Jdq2Z0YLse3moQUCpg=
|
go.opentelemetry.io/otel/sdk/metric v1.28.0/go.mod h1:cWPjykihLAPvXKi4iZc1dpER3Jdq2Z0YLse3moQUCpg=
|
||||||
go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI=
|
go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI=
|
||||||
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
|
|
||||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||||
go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8=
|
go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8=
|
||||||
go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo=
|
go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo=
|
||||||
@ -1789,12 +1790,9 @@ golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
|
|||||||
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
|
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
|
||||||
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
|
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
|
||||||
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
|
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
|
||||||
golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
||||||
golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
||||||
golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE=
|
|
||||||
golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
|
||||||
golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -1805,14 +1803,12 @@ golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
|||||||
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
|
||||||
golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457 h1:zf5N6UOrA487eEFacMePxjXAJctxKmyjKUsjA11Uzuk=
|
golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457 h1:zf5N6UOrA487eEFacMePxjXAJctxKmyjKUsjA11Uzuk=
|
||||||
golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0=
|
golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0=
|
||||||
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
|
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
|
||||||
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
|
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
|
||||||
golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||||
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
|
||||||
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
@ -1879,7 +1875,6 @@ google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjr
|
|||||||
google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
|
google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
|
||||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE=
|
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE=
|
||||||
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||||
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
|
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
|
||||||
gopkg.in/cheggaaa/pb.v1 v1.0.25 h1:Ev7yu1/f6+d+b3pi5vPdRPc6nNtP1umSfcWiEfRqv6I=
|
gopkg.in/cheggaaa/pb.v1 v1.0.25 h1:Ev7yu1/f6+d+b3pi5vPdRPc6nNtP1umSfcWiEfRqv6I=
|
||||||
gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8=
|
gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8=
|
||||||
@ -1909,6 +1904,7 @@ howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g=
|
|||||||
k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE=
|
k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE=
|
||||||
k8s.io/apiextensions-apiserver v0.31.0 h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk=
|
k8s.io/apiextensions-apiserver v0.31.0 h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk=
|
||||||
k8s.io/apiextensions-apiserver v0.31.0/go.mod h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk=
|
k8s.io/apiextensions-apiserver v0.31.0/go.mod h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk=
|
||||||
|
k8s.io/apiserver v0.31.1/go.mod h1:lzDhpeToamVZJmmFlaLwdYZwd7zB+WYRYIboqA1kGxM=
|
||||||
k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU=
|
k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU=
|
||||||
k8s.io/code-generator v0.31.0 h1:w607nrMi1KeDKB3/F/J4lIoOgAwc+gV9ZKew4XRfMp8=
|
k8s.io/code-generator v0.31.0 h1:w607nrMi1KeDKB3/F/J4lIoOgAwc+gV9ZKew4XRfMp8=
|
||||||
k8s.io/code-generator v0.31.0/go.mod h1:84y4w3es8rOJOUUP1rLsIiGlO1JuEaPFXQPA9e/K6U0=
|
k8s.io/code-generator v0.31.0/go.mod h1:84y4w3es8rOJOUUP1rLsIiGlO1JuEaPFXQPA9e/K6U0=
|
||||||
@ -1917,6 +1913,7 @@ k8s.io/code-generator v0.31.1/go.mod h1:oL2ky46L48osNqqZAeOcWWy0S5BXj50vVdwOtTef
|
|||||||
k8s.io/code-generator v0.31.3 h1:Pj0fYOBms+ZrsulLi4DMsCEx1jG8fWKRLy44onHsLBI=
|
k8s.io/code-generator v0.31.3 h1:Pj0fYOBms+ZrsulLi4DMsCEx1jG8fWKRLy44onHsLBI=
|
||||||
k8s.io/code-generator v0.31.3/go.mod h1:/umCIlT84g1+Yu5ZXtP1KGSRTnGiIzzX5AzUAxsNlts=
|
k8s.io/code-generator v0.31.3/go.mod h1:/umCIlT84g1+Yu5ZXtP1KGSRTnGiIzzX5AzUAxsNlts=
|
||||||
k8s.io/component-base v0.31.0/go.mod h1:TYVuzI1QmN4L5ItVdMSXKvH7/DtvIuas5/mm8YT3rTo=
|
k8s.io/component-base v0.31.0/go.mod h1:TYVuzI1QmN4L5ItVdMSXKvH7/DtvIuas5/mm8YT3rTo=
|
||||||
|
k8s.io/component-base v0.31.1/go.mod h1:WGeaw7t/kTsqpVTaCoVEtillbqAhF2/JgvO0LDOMa0w=
|
||||||
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks=
|
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks=
|
||||||
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo=
|
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo=
|
||||||
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
|
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
// +k8s:deepcopy-gen=package
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
// +k8s:defaulter-gen=TypeMeta
|
|
||||||
// +groupName=notifications.alerting.grafana.app
|
|
||||||
|
|
||||||
package v0alpha1 // import "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
@ -1,24 +0,0 @@
|
|||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
common "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Integration defines model for Integration.
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
type Integration struct {
|
|
||||||
DisableResolveMessage *bool `json:"disableResolveMessage,omitempty"`
|
|
||||||
// +mapType=atomic
|
|
||||||
SecureFields map[string]bool `json:"secureFields,omitempty"`
|
|
||||||
Settings common.Unstructured `json:"settings"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
Uid *string `json:"uid,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ReceiverSpec defines model for Spec.
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
type ReceiverSpec struct {
|
|
||||||
// +listType=atomic
|
|
||||||
Integrations []Integration `json:"integrations"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
}
|
|
@ -1,222 +0,0 @@
|
|||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
"k8s.io/apimachinery/pkg/fields"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
||||||
"k8s.io/apiserver/pkg/registry/generic"
|
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/apimachinery/utils"
|
|
||||||
scope "github.com/grafana/grafana/pkg/apis/scope/v0alpha1"
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
localSchemeBuilder.Register(AddKnownTypes)
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
GROUP = "notifications.alerting.grafana.app"
|
|
||||||
VERSION = "v0alpha1"
|
|
||||||
APIVERSION = GROUP + "/" + VERSION
|
|
||||||
UserDefinedRoutingTreeName = "user-defined"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
TimeIntervalResourceInfo = utils.NewResourceInfo(GROUP, VERSION,
|
|
||||||
"timeintervals", "timeinterval", "TimeInterval",
|
|
||||||
func() runtime.Object { return &TimeInterval{} },
|
|
||||||
func() runtime.Object { return &TimeIntervalList{} },
|
|
||||||
utils.TableColumns{
|
|
||||||
Definition: []metav1.TableColumnDefinition{
|
|
||||||
{Name: "Name", Type: "string", Format: "name"},
|
|
||||||
// {Name: "Intervals", Type: "string", Format: "string", Description: "The display name"},
|
|
||||||
},
|
|
||||||
Reader: func(obj any) ([]interface{}, error) {
|
|
||||||
r, ok := obj.(*TimeInterval)
|
|
||||||
if ok {
|
|
||||||
return []interface{}{
|
|
||||||
r.Name,
|
|
||||||
// r.Spec, //TODO implement formatting for Spec, same as UI?
|
|
||||||
}, nil
|
|
||||||
}
|
|
||||||
return nil, fmt.Errorf("expected resource or info")
|
|
||||||
},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
ReceiverResourceInfo = utils.NewResourceInfo(GROUP, VERSION,
|
|
||||||
"receivers", "receiver", "Receiver",
|
|
||||||
func() runtime.Object { return &Receiver{} },
|
|
||||||
func() runtime.Object { return &ReceiverList{} },
|
|
||||||
utils.TableColumns{
|
|
||||||
Definition: []metav1.TableColumnDefinition{
|
|
||||||
{Name: "Name", Type: "string", Format: "name"},
|
|
||||||
{Name: "Title", Type: "string", Format: "string", Description: "The receiver name"}, // TODO: Add integration types.
|
|
||||||
},
|
|
||||||
Reader: func(obj any) ([]interface{}, error) {
|
|
||||||
r, ok := obj.(*Receiver)
|
|
||||||
if ok {
|
|
||||||
return []interface{}{
|
|
||||||
r.Name,
|
|
||||||
r.Spec.Title,
|
|
||||||
// r.Spec, //TODO implement formatting for Spec, same as UI?
|
|
||||||
}, nil
|
|
||||||
}
|
|
||||||
return nil, fmt.Errorf("expected resource or info")
|
|
||||||
},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
TemplateGroupResourceInfo = utils.NewResourceInfo(GROUP, VERSION,
|
|
||||||
"templategroups", "templategroup", "TemplateGroup",
|
|
||||||
func() runtime.Object { return &TemplateGroup{} },
|
|
||||||
func() runtime.Object { return &TemplateGroupList{} },
|
|
||||||
utils.TableColumns{
|
|
||||||
Definition: []metav1.TableColumnDefinition{
|
|
||||||
{Name: "Name", Type: "string", Format: "name"},
|
|
||||||
},
|
|
||||||
Reader: func(obj any) ([]interface{}, error) {
|
|
||||||
r, ok := obj.(*TemplateGroup)
|
|
||||||
if !ok {
|
|
||||||
return nil, fmt.Errorf("expected resource or info")
|
|
||||||
}
|
|
||||||
return []interface{}{
|
|
||||||
r.Name,
|
|
||||||
}, nil
|
|
||||||
},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
RouteResourceInfo = utils.NewResourceInfo(GROUP, VERSION,
|
|
||||||
"routingtrees", "routingtree", "RoutingTree",
|
|
||||||
func() runtime.Object { return &RoutingTree{} },
|
|
||||||
func() runtime.Object { return &RoutingTreeList{} },
|
|
||||||
utils.TableColumns{
|
|
||||||
Definition: []metav1.TableColumnDefinition{
|
|
||||||
{Name: "Name", Type: "string", Format: "name"},
|
|
||||||
// {Name: "Intervals", Type: "string", Format: "string", Description: "The display name"},
|
|
||||||
},
|
|
||||||
Reader: func(obj any) ([]interface{}, error) {
|
|
||||||
r, ok := obj.(*RoutingTree)
|
|
||||||
if !ok {
|
|
||||||
return nil, fmt.Errorf("expected resource or info")
|
|
||||||
}
|
|
||||||
return []interface{}{
|
|
||||||
r.Name,
|
|
||||||
// r.Spec, //TODO implement formatting for Spec, same as UI?
|
|
||||||
}, nil
|
|
||||||
},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
// SchemeGroupVersion is group version used to register these objects
|
|
||||||
SchemeGroupVersion = schema.GroupVersion{Group: GROUP, Version: VERSION}
|
|
||||||
// SchemaBuilder is used by standard codegen
|
|
||||||
SchemeBuilder runtime.SchemeBuilder
|
|
||||||
localSchemeBuilder = &SchemeBuilder
|
|
||||||
AddToScheme = localSchemeBuilder.AddToScheme
|
|
||||||
)
|
|
||||||
|
|
||||||
// Adds the list of known types to the given scheme.
|
|
||||||
func AddKnownTypes(scheme *runtime.Scheme) error {
|
|
||||||
return AddKnownTypesGroup(scheme, SchemeGroupVersion)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Adds the list of known types to the given scheme and group version.
|
|
||||||
func AddKnownTypesGroup(scheme *runtime.Scheme, g schema.GroupVersion) error {
|
|
||||||
scheme.AddKnownTypes(g,
|
|
||||||
&TimeInterval{},
|
|
||||||
&TimeIntervalList{},
|
|
||||||
&Receiver{},
|
|
||||||
&ReceiverList{},
|
|
||||||
&TemplateGroup{},
|
|
||||||
&TemplateGroupList{},
|
|
||||||
&RoutingTree{},
|
|
||||||
&RoutingTreeList{},
|
|
||||||
)
|
|
||||||
metav1.AddToGroupVersion(scheme, g)
|
|
||||||
|
|
||||||
err := scheme.AddFieldLabelConversionFunc(
|
|
||||||
TimeIntervalResourceInfo.GroupVersionKind(),
|
|
||||||
func(label, value string) (string, string, error) {
|
|
||||||
fieldSet := SelectableTimeIntervalsFields(&TimeInterval{})
|
|
||||||
for key := range fieldSet {
|
|
||||||
if label == key {
|
|
||||||
return label, value, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", "", fmt.Errorf("field label not supported for %s: %s", scope.ScopeNodeResourceInfo.GroupVersionKind(), label)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = scheme.AddFieldLabelConversionFunc(
|
|
||||||
ReceiverResourceInfo.GroupVersionKind(),
|
|
||||||
func(label, value string) (string, string, error) {
|
|
||||||
fieldSet := SelectableReceiverFields(&Receiver{})
|
|
||||||
for key := range fieldSet {
|
|
||||||
if label == key {
|
|
||||||
return label, value, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", "", fmt.Errorf("field label not supported for %s: %s", scope.ScopeNodeResourceInfo.GroupVersionKind(), label)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = scheme.AddFieldLabelConversionFunc(
|
|
||||||
TemplateGroupResourceInfo.GroupVersionKind(),
|
|
||||||
func(label, value string) (string, string, error) {
|
|
||||||
fieldSet := SelectableTemplateGroupFields(&TemplateGroup{})
|
|
||||||
for key := range fieldSet {
|
|
||||||
if label == key {
|
|
||||||
return label, value, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", "", fmt.Errorf("field label not supported for %s: %s", scope.ScopeNodeResourceInfo.GroupVersionKind(), label)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func SelectableTimeIntervalsFields(obj *TimeInterval) fields.Set {
|
|
||||||
if obj == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return generic.MergeFieldsSets(generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false), fields.Set{
|
|
||||||
"metadata.provenance": obj.GetProvenanceStatus(),
|
|
||||||
"spec.name": obj.Spec.Name,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func SelectableReceiverFields(obj *Receiver) fields.Set {
|
|
||||||
if obj == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return generic.MergeFieldsSets(generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false), fields.Set{
|
|
||||||
"metadata.provenance": obj.GetProvenanceStatus(),
|
|
||||||
"spec.title": obj.Spec.Title,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func SelectableTemplateGroupFields(obj *TemplateGroup) fields.Set {
|
|
||||||
if obj == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return generic.MergeFieldsSets(generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false), fields.Set{
|
|
||||||
"metadata.provenance": obj.GetProvenanceStatus(),
|
|
||||||
"spec.title": obj.Spec.Title,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource
|
|
||||||
func Resource(resource string) schema.GroupResource {
|
|
||||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
package v0alpha1
|
|
||||||
|
|
||||||
// Interval defines model for Interval.
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
type Interval struct {
|
|
||||||
// +listType=atomic
|
|
||||||
DaysOfMonth []string `json:"days_of_month,omitempty"`
|
|
||||||
|
|
||||||
// +listType=atomic
|
|
||||||
Location *string `json:"location,omitempty"`
|
|
||||||
|
|
||||||
// +listType=atomic
|
|
||||||
Months []string `json:"months,omitempty"`
|
|
||||||
|
|
||||||
// +listType=atomic
|
|
||||||
Times []TimeRange `json:"times,omitempty"`
|
|
||||||
|
|
||||||
// +listType=atomic
|
|
||||||
Weekdays []string `json:"weekdays,omitempty"`
|
|
||||||
|
|
||||||
// +listType=atomic
|
|
||||||
Years []string `json:"years,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Spec defines model for Spec.
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
type TimeIntervalSpec struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
// +listType=atomic
|
|
||||||
TimeIntervals []Interval `json:"time_intervals"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TimeRange defines model for TimeRange.
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
type TimeRange struct {
|
|
||||||
EndTime string `json:"end_time"`
|
|
||||||
StartTime string `json:"start_time"`
|
|
||||||
}
|
|
@ -1,340 +0,0 @@
|
|||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// region TimeInterval
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
type TimeInterval struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
Spec TimeIntervalSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TimeInterval) GetSpec() any {
|
|
||||||
return o.Spec
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TimeInterval) SetSpec(spec any) error {
|
|
||||||
cast, ok := spec.(TimeIntervalSpec)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
|
|
||||||
}
|
|
||||||
o.Spec = cast
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TimeInterval) GetCreatedBy() string {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TimeInterval) SetCreatedBy(createdBy string) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TimeInterval) GetUpdateTimestamp() time.Time {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
|
|
||||||
return parsed
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TimeInterval) SetUpdateTimestamp(updateTimestamp time.Time) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TimeInterval) GetUpdatedBy() string {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TimeInterval) SetUpdatedBy(updatedBy string) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
type TimeIntervalList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
Items []TimeInterval `json:"items"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// endregion
|
|
||||||
|
|
||||||
// region Receivers
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
type Receiver struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
Spec ReceiverSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) GetSpec() any {
|
|
||||||
return o.Spec
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) SetSpec(spec any) error {
|
|
||||||
cast, ok := spec.(ReceiverSpec)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
|
|
||||||
}
|
|
||||||
o.Spec = cast
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) GetCreatedBy() string {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) SetCreatedBy(createdBy string) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) GetUpdateTimestamp() time.Time {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
|
|
||||||
return parsed
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) SetUpdateTimestamp(updateTimestamp time.Time) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) GetUpdatedBy() string {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) SetUpdatedBy(updatedBy string) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
type ReceiverList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
Items []Receiver `json:"items"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// endregion
|
|
||||||
|
|
||||||
// region Templates
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
type TemplateGroup struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
Spec TemplateGroupSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) GetSpec() any {
|
|
||||||
return o.Spec
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) SetSpec(spec any) error {
|
|
||||||
cast, ok := spec.(TemplateGroupSpec)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
|
|
||||||
}
|
|
||||||
o.Spec = cast
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) GetCreatedBy() string {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) SetCreatedBy(createdBy string) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) GetUpdateTimestamp() time.Time {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
parsed, _ := time.Parse(o.ObjectMeta.Annotations["grafana.com/updateTimestamp"], time.RFC3339)
|
|
||||||
return parsed
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) SetUpdateTimestamp(updateTimestamp time.Time) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) GetUpdatedBy() string {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) SetUpdatedBy(updatedBy string) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
type TemplateGroupList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
Items []TemplateGroup `json:"items"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// endregion
|
|
||||||
|
|
||||||
// region Routes
|
|
||||||
|
|
||||||
// +genclient
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
type RoutingTree struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
metav1.ObjectMeta `json:"metadata"`
|
|
||||||
Spec RoutingTreeSpec `json:"spec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) GetSpec() any {
|
|
||||||
return o.Spec
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) SetSpec(spec any) error {
|
|
||||||
cast, ok := spec.(RoutingTreeSpec)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("cannot set spec type %#v, not of type Spec", spec)
|
|
||||||
}
|
|
||||||
o.Spec = cast
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) GetCreatedBy() string {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.ObjectMeta.Annotations["grafana.com/createdBy"]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) SetCreatedBy(createdBy string) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/createdBy"] = createdBy
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) GetUpdateTimestamp() time.Time {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
parsed, _ := time.Parse(time.RFC3339, o.ObjectMeta.Annotations["grafana.com/updateTimestamp"])
|
|
||||||
return parsed
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) SetUpdateTimestamp(updateTimestamp time.Time) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/updateTimestamp"] = updateTimestamp.Format(time.RFC3339)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) GetUpdatedBy() string {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.ObjectMeta.Annotations["grafana.com/updatedBy"]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) SetUpdatedBy(updatedBy string) {
|
|
||||||
if o.ObjectMeta.Annotations == nil {
|
|
||||||
o.ObjectMeta.Annotations = make(map[string]string)
|
|
||||||
}
|
|
||||||
|
|
||||||
o.ObjectMeta.Annotations["grafana.com/updatedBy"] = updatedBy
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
// +k8s:openapi-gen=true
|
|
||||||
type RoutingTreeList struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
metav1.ListMeta `json:"metadata"`
|
|
||||||
Items []RoutingTree `json:"items"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// endregion Routes
|
|
@ -1,120 +0,0 @@
|
|||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
const InternalPrefix = "grafana.com/"
|
|
||||||
const ProvenanceStatusAnnotationKey = InternalPrefix + "provenance"
|
|
||||||
const ProvenanceStatusNone = "none"
|
|
||||||
|
|
||||||
func (o *TimeInterval) GetProvenanceStatus() string {
|
|
||||||
if o == nil || o.Annotations == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
s, ok := o.Annotations[ProvenanceStatusAnnotationKey]
|
|
||||||
if !ok || s == "" {
|
|
||||||
return ProvenanceStatusNone
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TimeInterval) SetProvenanceStatus(status string) {
|
|
||||||
if o.Annotations == nil {
|
|
||||||
o.Annotations = make(map[string]string, 1)
|
|
||||||
}
|
|
||||||
if status == "" {
|
|
||||||
status = ProvenanceStatusNone
|
|
||||||
}
|
|
||||||
o.Annotations[ProvenanceStatusAnnotationKey] = status
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) GetProvenanceStatus() string {
|
|
||||||
if o == nil || o.Annotations == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
s, ok := o.Annotations[ProvenanceStatusAnnotationKey]
|
|
||||||
if !ok || s == "" {
|
|
||||||
return ProvenanceStatusNone
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) SetProvenanceStatus(status string) {
|
|
||||||
if o.Annotations == nil {
|
|
||||||
o.Annotations = make(map[string]string, 1)
|
|
||||||
}
|
|
||||||
if status == "" {
|
|
||||||
status = ProvenanceStatusNone
|
|
||||||
}
|
|
||||||
o.Annotations[ProvenanceStatusAnnotationKey] = status
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) SetAccessControl(action string) {
|
|
||||||
if o.Annotations == nil {
|
|
||||||
o.Annotations = make(map[string]string, 1)
|
|
||||||
}
|
|
||||||
o.Annotations[AccessControlAnnotation(action)] = "true"
|
|
||||||
}
|
|
||||||
|
|
||||||
// AccessControlAnnotation returns the key for the access control annotation for the given action.
|
|
||||||
// Ex. grafana.com/access/canDelete.
|
|
||||||
func AccessControlAnnotation(action string) string {
|
|
||||||
return fmt.Sprintf("%s%s/%s", InternalPrefix, "access", action)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Receiver) SetInUse(routesCnt int, rules []string) {
|
|
||||||
if o.Annotations == nil {
|
|
||||||
o.Annotations = make(map[string]string, 2)
|
|
||||||
}
|
|
||||||
o.Annotations[InUseAnnotation("routes")] = fmt.Sprintf("%d", routesCnt)
|
|
||||||
o.Annotations[InUseAnnotation("rules")] = fmt.Sprintf("%d", len(rules))
|
|
||||||
}
|
|
||||||
|
|
||||||
// InUseAnnotation returns the key for the in-use annotation for the given resource.
|
|
||||||
// Ex. grafana.com/inUse/routes, grafana.com/inUse/rules.
|
|
||||||
func InUseAnnotation(resource string) string {
|
|
||||||
return fmt.Sprintf("%s%s/%s", InternalPrefix, "inUse", resource)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) GetProvenanceStatus() string {
|
|
||||||
if o == nil || o.Annotations == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
s, ok := o.Annotations[ProvenanceStatusAnnotationKey]
|
|
||||||
if !ok || s == "" {
|
|
||||||
return ProvenanceStatusNone
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *TemplateGroup) SetProvenanceStatus(status string) {
|
|
||||||
if o.Annotations == nil {
|
|
||||||
o.Annotations = make(map[string]string, 1)
|
|
||||||
}
|
|
||||||
if status == "" {
|
|
||||||
status = ProvenanceStatusNone
|
|
||||||
}
|
|
||||||
o.Annotations[ProvenanceStatusAnnotationKey] = status
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) GetProvenanceStatus() string {
|
|
||||||
if o == nil || o.Annotations == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
s, ok := o.Annotations[ProvenanceStatusAnnotationKey]
|
|
||||||
if !ok || s == "" {
|
|
||||||
return ProvenanceStatusNone
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *RoutingTree) SetProvenanceStatus(status string) {
|
|
||||||
if o.Annotations == nil {
|
|
||||||
o.Annotations = make(map[string]string, 1)
|
|
||||||
}
|
|
||||||
if status == "" {
|
|
||||||
status = ProvenanceStatusNone
|
|
||||||
}
|
|
||||||
o.Annotations[ProvenanceStatusAnnotationKey] = status
|
|
||||||
}
|
|
@ -1,544 +0,0 @@
|
|||||||
//go:build !ignore_autogenerated
|
|
||||||
// +build !ignore_autogenerated
|
|
||||||
|
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by deepcopy-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *Integration) DeepCopyInto(out *Integration) {
|
|
||||||
*out = *in
|
|
||||||
if in.DisableResolveMessage != nil {
|
|
||||||
in, out := &in.DisableResolveMessage, &out.DisableResolveMessage
|
|
||||||
*out = new(bool)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.SecureFields != nil {
|
|
||||||
in, out := &in.SecureFields, &out.SecureFields
|
|
||||||
*out = make(map[string]bool, len(*in))
|
|
||||||
for key, val := range *in {
|
|
||||||
(*out)[key] = val
|
|
||||||
}
|
|
||||||
}
|
|
||||||
in.Settings.DeepCopyInto(&out.Settings)
|
|
||||||
if in.Uid != nil {
|
|
||||||
in, out := &in.Uid, &out.Uid
|
|
||||||
*out = new(string)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Integration.
|
|
||||||
func (in *Integration) DeepCopy() *Integration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(Integration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *Interval) DeepCopyInto(out *Interval) {
|
|
||||||
*out = *in
|
|
||||||
if in.DaysOfMonth != nil {
|
|
||||||
in, out := &in.DaysOfMonth, &out.DaysOfMonth
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.Location != nil {
|
|
||||||
in, out := &in.Location, &out.Location
|
|
||||||
*out = new(string)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.Months != nil {
|
|
||||||
in, out := &in.Months, &out.Months
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.Times != nil {
|
|
||||||
in, out := &in.Times, &out.Times
|
|
||||||
*out = make([]TimeRange, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.Weekdays != nil {
|
|
||||||
in, out := &in.Weekdays, &out.Weekdays
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.Years != nil {
|
|
||||||
in, out := &in.Years, &out.Years
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Interval.
|
|
||||||
func (in *Interval) DeepCopy() *Interval {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(Interval)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *Matcher) DeepCopyInto(out *Matcher) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Matcher.
|
|
||||||
func (in *Matcher) DeepCopy() *Matcher {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(Matcher)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *Receiver) DeepCopyInto(out *Receiver) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
|
||||||
in.Spec.DeepCopyInto(&out.Spec)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Receiver.
|
|
||||||
func (in *Receiver) DeepCopy() *Receiver {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(Receiver)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *Receiver) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ReceiverList) DeepCopyInto(out *ReceiverList) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
|
||||||
if in.Items != nil {
|
|
||||||
in, out := &in.Items, &out.Items
|
|
||||||
*out = make([]Receiver, len(*in))
|
|
||||||
for i := range *in {
|
|
||||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReceiverList.
|
|
||||||
func (in *ReceiverList) DeepCopy() *ReceiverList {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ReceiverList)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *ReceiverList) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ReceiverSpec) DeepCopyInto(out *ReceiverSpec) {
|
|
||||||
*out = *in
|
|
||||||
if in.Integrations != nil {
|
|
||||||
in, out := &in.Integrations, &out.Integrations
|
|
||||||
*out = make([]Integration, len(*in))
|
|
||||||
for i := range *in {
|
|
||||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReceiverSpec.
|
|
||||||
func (in *ReceiverSpec) DeepCopy() *ReceiverSpec {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ReceiverSpec)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *Route) DeepCopyInto(out *Route) {
|
|
||||||
*out = *in
|
|
||||||
if in.GroupBy != nil {
|
|
||||||
in, out := &in.GroupBy, &out.GroupBy
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.GroupInterval != nil {
|
|
||||||
in, out := &in.GroupInterval, &out.GroupInterval
|
|
||||||
*out = new(string)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.GroupWait != nil {
|
|
||||||
in, out := &in.GroupWait, &out.GroupWait
|
|
||||||
*out = new(string)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.Matchers != nil {
|
|
||||||
in, out := &in.Matchers, &out.Matchers
|
|
||||||
*out = make([]Matcher, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.MuteTimeIntervals != nil {
|
|
||||||
in, out := &in.MuteTimeIntervals, &out.MuteTimeIntervals
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.Receiver != nil {
|
|
||||||
in, out := &in.Receiver, &out.Receiver
|
|
||||||
*out = new(string)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.RepeatInterval != nil {
|
|
||||||
in, out := &in.RepeatInterval, &out.RepeatInterval
|
|
||||||
*out = new(string)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.Routes != nil {
|
|
||||||
in, out := &in.Routes, &out.Routes
|
|
||||||
*out = make([]Route, len(*in))
|
|
||||||
for i := range *in {
|
|
||||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Route.
|
|
||||||
func (in *Route) DeepCopy() *Route {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(Route)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *RouteDefaults) DeepCopyInto(out *RouteDefaults) {
|
|
||||||
*out = *in
|
|
||||||
if in.GroupBy != nil {
|
|
||||||
in, out := &in.GroupBy, &out.GroupBy
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
if in.GroupInterval != nil {
|
|
||||||
in, out := &in.GroupInterval, &out.GroupInterval
|
|
||||||
*out = new(string)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.GroupWait != nil {
|
|
||||||
in, out := &in.GroupWait, &out.GroupWait
|
|
||||||
*out = new(string)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.RepeatInterval != nil {
|
|
||||||
in, out := &in.RepeatInterval, &out.RepeatInterval
|
|
||||||
*out = new(string)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteDefaults.
|
|
||||||
func (in *RouteDefaults) DeepCopy() *RouteDefaults {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(RouteDefaults)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *RoutingTree) DeepCopyInto(out *RoutingTree) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
|
||||||
in.Spec.DeepCopyInto(&out.Spec)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingTree.
|
|
||||||
func (in *RoutingTree) DeepCopy() *RoutingTree {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(RoutingTree)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *RoutingTree) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *RoutingTreeList) DeepCopyInto(out *RoutingTreeList) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
|
||||||
if in.Items != nil {
|
|
||||||
in, out := &in.Items, &out.Items
|
|
||||||
*out = make([]RoutingTree, len(*in))
|
|
||||||
for i := range *in {
|
|
||||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingTreeList.
|
|
||||||
func (in *RoutingTreeList) DeepCopy() *RoutingTreeList {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(RoutingTreeList)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *RoutingTreeList) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *RoutingTreeSpec) DeepCopyInto(out *RoutingTreeSpec) {
|
|
||||||
*out = *in
|
|
||||||
in.Defaults.DeepCopyInto(&out.Defaults)
|
|
||||||
if in.Routes != nil {
|
|
||||||
in, out := &in.Routes, &out.Routes
|
|
||||||
*out = make([]Route, len(*in))
|
|
||||||
for i := range *in {
|
|
||||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingTreeSpec.
|
|
||||||
func (in *RoutingTreeSpec) DeepCopy() *RoutingTreeSpec {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(RoutingTreeSpec)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *TemplateGroup) DeepCopyInto(out *TemplateGroup) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
|
||||||
out.Spec = in.Spec
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateGroup.
|
|
||||||
func (in *TemplateGroup) DeepCopy() *TemplateGroup {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(TemplateGroup)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *TemplateGroup) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *TemplateGroupList) DeepCopyInto(out *TemplateGroupList) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
|
||||||
if in.Items != nil {
|
|
||||||
in, out := &in.Items, &out.Items
|
|
||||||
*out = make([]TemplateGroup, len(*in))
|
|
||||||
for i := range *in {
|
|
||||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateGroupList.
|
|
||||||
func (in *TemplateGroupList) DeepCopy() *TemplateGroupList {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(TemplateGroupList)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *TemplateGroupList) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *TemplateGroupSpec) DeepCopyInto(out *TemplateGroupSpec) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateGroupSpec.
|
|
||||||
func (in *TemplateGroupSpec) DeepCopy() *TemplateGroupSpec {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(TemplateGroupSpec)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *TimeInterval) DeepCopyInto(out *TimeInterval) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
|
||||||
in.Spec.DeepCopyInto(&out.Spec)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeInterval.
|
|
||||||
func (in *TimeInterval) DeepCopy() *TimeInterval {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(TimeInterval)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *TimeInterval) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *TimeIntervalList) DeepCopyInto(out *TimeIntervalList) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
|
||||||
if in.Items != nil {
|
|
||||||
in, out := &in.Items, &out.Items
|
|
||||||
*out = make([]TimeInterval, len(*in))
|
|
||||||
for i := range *in {
|
|
||||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeIntervalList.
|
|
||||||
func (in *TimeIntervalList) DeepCopy() *TimeIntervalList {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(TimeIntervalList)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *TimeIntervalList) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *TimeIntervalSpec) DeepCopyInto(out *TimeIntervalSpec) {
|
|
||||||
*out = *in
|
|
||||||
if in.TimeIntervals != nil {
|
|
||||||
in, out := &in.TimeIntervals, &out.TimeIntervals
|
|
||||||
*out = make([]Interval, len(*in))
|
|
||||||
for i := range *in {
|
|
||||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeIntervalSpec.
|
|
||||||
func (in *TimeIntervalSpec) DeepCopy() *TimeIntervalSpec {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(TimeIntervalSpec)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *TimeRange) DeepCopyInto(out *TimeRange) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeRange.
|
|
||||||
func (in *TimeRange) DeepCopy() *TimeRange {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(TimeRange)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
//go:build !ignore_autogenerated
|
|
||||||
// +build !ignore_autogenerated
|
|
||||||
|
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by defaulter-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
)
|
|
||||||
|
|
||||||
// RegisterDefaults adds defaulters functions to the given scheme.
|
|
||||||
// Public to allow building arbitrary schemes.
|
|
||||||
// All generated defaulters are covering - they call all nested defaulters.
|
|
||||||
func RegisterDefaults(scheme *runtime.Scheme) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
@ -1,932 +0,0 @@
|
|||||||
//go:build !ignore_autogenerated
|
|
||||||
// +build !ignore_autogenerated
|
|
||||||
|
|
||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by openapi-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
common "k8s.io/kube-openapi/pkg/common"
|
|
||||||
spec "k8s.io/kube-openapi/pkg/validation/spec"
|
|
||||||
)
|
|
||||||
|
|
||||||
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
|
|
||||||
return map[string]common.OpenAPIDefinition{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Integration": schema_pkg_apis_alerting_notifications_v0alpha1_Integration(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Interval": schema_pkg_apis_alerting_notifications_v0alpha1_Interval(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Matcher": schema_pkg_apis_alerting_notifications_v0alpha1_Matcher(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Receiver": schema_pkg_apis_alerting_notifications_v0alpha1_Receiver(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.ReceiverList": schema_pkg_apis_alerting_notifications_v0alpha1_ReceiverList(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.ReceiverSpec": schema_pkg_apis_alerting_notifications_v0alpha1_ReceiverSpec(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Route": schema_pkg_apis_alerting_notifications_v0alpha1_Route(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RouteDefaults": schema_pkg_apis_alerting_notifications_v0alpha1_RouteDefaults(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RoutingTree": schema_pkg_apis_alerting_notifications_v0alpha1_RoutingTree(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RoutingTreeList": schema_pkg_apis_alerting_notifications_v0alpha1_RoutingTreeList(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RoutingTreeSpec": schema_pkg_apis_alerting_notifications_v0alpha1_RoutingTreeSpec(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TemplateGroup": schema_pkg_apis_alerting_notifications_v0alpha1_TemplateGroup(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TemplateGroupList": schema_pkg_apis_alerting_notifications_v0alpha1_TemplateGroupList(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TemplateGroupSpec": schema_pkg_apis_alerting_notifications_v0alpha1_TemplateGroupSpec(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeInterval": schema_pkg_apis_alerting_notifications_v0alpha1_TimeInterval(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeIntervalList": schema_pkg_apis_alerting_notifications_v0alpha1_TimeIntervalList(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeIntervalSpec": schema_pkg_apis_alerting_notifications_v0alpha1_TimeIntervalSpec(ref),
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeRange": schema_pkg_apis_alerting_notifications_v0alpha1_TimeRange(ref),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_Integration(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Integration defines model for Integration.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"disableResolveMessage": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"boolean"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"secureFields": {
|
|
||||||
VendorExtensible: spec.VendorExtensible{
|
|
||||||
Extensions: spec.Extensions{
|
|
||||||
"x-kubernetes-map-type": "atomic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"object"},
|
|
||||||
AdditionalProperties: &spec.SchemaOrBool{
|
|
||||||
Allows: true,
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: false,
|
|
||||||
Type: []string{"boolean"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1.Unstructured"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"uid": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"settings", "type"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1.Unstructured"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_Interval(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Interval defines model for Interval.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"days_of_month": {
|
|
||||||
VendorExtensible: spec.VendorExtensible{
|
|
||||||
Extensions: spec.Extensions{
|
|
||||||
"x-kubernetes-list-type": "atomic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"location": {
|
|
||||||
VendorExtensible: spec.VendorExtensible{
|
|
||||||
Extensions: spec.Extensions{
|
|
||||||
"x-kubernetes-list-type": "atomic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"months": {
|
|
||||||
VendorExtensible: spec.VendorExtensible{
|
|
||||||
Extensions: spec.Extensions{
|
|
||||||
"x-kubernetes-list-type": "atomic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"times": {
|
|
||||||
VendorExtensible: spec.VendorExtensible{
|
|
||||||
Extensions: spec.Extensions{
|
|
||||||
"x-kubernetes-list-type": "atomic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeRange"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"weekdays": {
|
|
||||||
VendorExtensible: spec.VendorExtensible{
|
|
||||||
Extensions: spec.Extensions{
|
|
||||||
"x-kubernetes-list-type": "atomic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"years": {
|
|
||||||
VendorExtensible: spec.VendorExtensible{
|
|
||||||
Extensions: spec.Extensions{
|
|
||||||
"x-kubernetes-list-type": "atomic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeRange"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_Matcher(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Matcher defines model for Matcher.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"label": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"label", "type", "value"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_Receiver(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"kind": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"apiVersion": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"spec": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.ReceiverSpec"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"metadata", "spec"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.ReceiverSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_ReceiverList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"kind": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"apiVersion": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"items": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Receiver"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"metadata", "items"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Receiver", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_ReceiverSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "ReceiverSpec defines model for Spec.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"integrations": {
|
|
||||||
VendorExtensible: spec.VendorExtensible{
|
|
||||||
Extensions: spec.Extensions{
|
|
||||||
"x-kubernetes-list-type": "atomic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Integration"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"integrations", "title"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Integration"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_Route(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Route defines model for Route.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"continue": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"boolean"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"group_by": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"group_interval": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"group_wait": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"matchers": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Matcher"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"mute_time_intervals": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"receiver": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"repeat_interval": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"routes": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Route"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Matcher", "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Route"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_RouteDefaults(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "RouteDefaults defines model for RouteDefaults.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"group_by": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"group_interval": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"group_wait": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"receiver": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"repeat_interval": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"receiver"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_RoutingTree(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"kind": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"apiVersion": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"spec": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RoutingTreeSpec"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"metadata", "spec"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RoutingTreeSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_RoutingTreeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"kind": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"apiVersion": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"items": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RoutingTree"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"metadata", "items"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RoutingTree", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_RoutingTreeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Spec defines model for Spec.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"defaults": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RouteDefaults"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"routes": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Route"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"defaults", "routes"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Route", "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.RouteDefaults"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_TemplateGroup(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"kind": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"apiVersion": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"spec": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TemplateGroupSpec"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"metadata", "spec"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TemplateGroupSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_TemplateGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"kind": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"apiVersion": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"items": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TemplateGroup"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"metadata", "items"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TemplateGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_TemplateGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "TemplateGroupSpec defines model for TemplateGroupSpec.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"title": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"content": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"title", "content"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_TimeInterval(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"kind": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"apiVersion": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"spec": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeIntervalSpec"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"metadata", "spec"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeIntervalSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_TimeIntervalList(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"kind": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"apiVersion": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"items": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeInterval"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"metadata", "items"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.TimeInterval", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_TimeIntervalSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "Spec defines model for Spec.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"name": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"time_intervals": {
|
|
||||||
VendorExtensible: spec.VendorExtensible{
|
|
||||||
Extensions: spec.Extensions{
|
|
||||||
"x-kubernetes-list-type": "atomic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Type: []string{"array"},
|
|
||||||
Items: &spec.SchemaOrArray{
|
|
||||||
Schema: &spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: map[string]interface{}{},
|
|
||||||
Ref: ref("github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Interval"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"name", "time_intervals"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Dependencies: []string{
|
|
||||||
"github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1.Interval"},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func schema_pkg_apis_alerting_notifications_v0alpha1_TimeRange(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
|
||||||
return common.OpenAPIDefinition{
|
|
||||||
Schema: spec.Schema{
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Description: "TimeRange defines model for TimeRange.",
|
|
||||||
Type: []string{"object"},
|
|
||||||
Properties: map[string]spec.Schema{
|
|
||||||
"end_time": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"start_time": {
|
|
||||||
SchemaProps: spec.SchemaProps{
|
|
||||||
Default: "",
|
|
||||||
Type: []string{"string"},
|
|
||||||
Format: "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Required: []string{"end_time", "start_time"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
API rule violation: list_type_missing,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Route,GroupBy
|
|
||||||
API rule violation: list_type_missing,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Route,Matchers
|
|
||||||
API rule violation: list_type_missing,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Route,MuteTimeIntervals
|
|
||||||
API rule violation: list_type_missing,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Route,Routes
|
|
||||||
API rule violation: list_type_missing,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,RouteDefaults,GroupBy
|
|
||||||
API rule violation: list_type_missing,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,RoutingTreeSpec,Routes
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Interval,DaysOfMonth
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Route,GroupBy
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Route,GroupInterval
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Route,GroupWait
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Route,MuteTimeIntervals
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,Route,RepeatInterval
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,RouteDefaults,GroupBy
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,RouteDefaults,GroupInterval
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,RouteDefaults,GroupWait
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,RouteDefaults,RepeatInterval
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,TimeIntervalSpec,TimeIntervals
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,TimeRange,EndTime
|
|
||||||
API rule violation: names_match,github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1,TimeRange,StartTime
|
|
@ -1,71 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// IntegrationApplyConfiguration represents a declarative configuration of the Integration type for use
|
|
||||||
// with apply.
|
|
||||||
type IntegrationApplyConfiguration struct {
|
|
||||||
DisableResolveMessage *bool `json:"disableResolveMessage,omitempty"`
|
|
||||||
SecureFields map[string]bool `json:"secureFields,omitempty"`
|
|
||||||
Settings *v0alpha1.Unstructured `json:"settings,omitempty"`
|
|
||||||
Type *string `json:"type,omitempty"`
|
|
||||||
Uid *string `json:"uid,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// IntegrationApplyConfiguration constructs a declarative configuration of the Integration type for use with
|
|
||||||
// apply.
|
|
||||||
func Integration() *IntegrationApplyConfiguration {
|
|
||||||
return &IntegrationApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDisableResolveMessage sets the DisableResolveMessage field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the DisableResolveMessage field is set to the value of the last call.
|
|
||||||
func (b *IntegrationApplyConfiguration) WithDisableResolveMessage(value bool) *IntegrationApplyConfiguration {
|
|
||||||
b.DisableResolveMessage = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithSecureFields puts the entries into the SecureFields field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the entries provided by each call will be put on the SecureFields field,
|
|
||||||
// overwriting an existing map entries in SecureFields field with the same key.
|
|
||||||
func (b *IntegrationApplyConfiguration) WithSecureFields(entries map[string]bool) *IntegrationApplyConfiguration {
|
|
||||||
if b.SecureFields == nil && len(entries) > 0 {
|
|
||||||
b.SecureFields = make(map[string]bool, len(entries))
|
|
||||||
}
|
|
||||||
for k, v := range entries {
|
|
||||||
b.SecureFields[k] = v
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithSettings sets the Settings field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Settings field is set to the value of the last call.
|
|
||||||
func (b *IntegrationApplyConfiguration) WithSettings(value v0alpha1.Unstructured) *IntegrationApplyConfiguration {
|
|
||||||
b.Settings = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithType sets the Type field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Type field is set to the value of the last call.
|
|
||||||
func (b *IntegrationApplyConfiguration) WithType(value string) *IntegrationApplyConfiguration {
|
|
||||||
b.Type = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithUid sets the Uid field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Uid field is set to the value of the last call.
|
|
||||||
func (b *IntegrationApplyConfiguration) WithUid(value string) *IntegrationApplyConfiguration {
|
|
||||||
b.Uid = &value
|
|
||||||
return b
|
|
||||||
}
|
|
@ -1,83 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
// IntervalApplyConfiguration represents a declarative configuration of the Interval type for use
|
|
||||||
// with apply.
|
|
||||||
type IntervalApplyConfiguration struct {
|
|
||||||
DaysOfMonth []string `json:"days_of_month,omitempty"`
|
|
||||||
Location *string `json:"location,omitempty"`
|
|
||||||
Months []string `json:"months,omitempty"`
|
|
||||||
Times []TimeRangeApplyConfiguration `json:"times,omitempty"`
|
|
||||||
Weekdays []string `json:"weekdays,omitempty"`
|
|
||||||
Years []string `json:"years,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// IntervalApplyConfiguration constructs a declarative configuration of the Interval type for use with
|
|
||||||
// apply.
|
|
||||||
func Interval() *IntervalApplyConfiguration {
|
|
||||||
return &IntervalApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDaysOfMonth adds the given value to the DaysOfMonth field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the DaysOfMonth field.
|
|
||||||
func (b *IntervalApplyConfiguration) WithDaysOfMonth(values ...string) *IntervalApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
b.DaysOfMonth = append(b.DaysOfMonth, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLocation sets the Location field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Location field is set to the value of the last call.
|
|
||||||
func (b *IntervalApplyConfiguration) WithLocation(value string) *IntervalApplyConfiguration {
|
|
||||||
b.Location = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMonths adds the given value to the Months field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Months field.
|
|
||||||
func (b *IntervalApplyConfiguration) WithMonths(values ...string) *IntervalApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
b.Months = append(b.Months, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithTimes adds the given value to the Times field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Times field.
|
|
||||||
func (b *IntervalApplyConfiguration) WithTimes(values ...*TimeRangeApplyConfiguration) *IntervalApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithTimes")
|
|
||||||
}
|
|
||||||
b.Times = append(b.Times, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithWeekdays adds the given value to the Weekdays field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Weekdays field.
|
|
||||||
func (b *IntervalApplyConfiguration) WithWeekdays(values ...string) *IntervalApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
b.Weekdays = append(b.Weekdays, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithYears adds the given value to the Years field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Years field.
|
|
||||||
func (b *IntervalApplyConfiguration) WithYears(values ...string) *IntervalApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
b.Years = append(b.Years, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// MatcherApplyConfiguration represents a declarative configuration of the Matcher type for use
|
|
||||||
// with apply.
|
|
||||||
type MatcherApplyConfiguration struct {
|
|
||||||
Label *string `json:"label,omitempty"`
|
|
||||||
Type *v0alpha1.MatcherType `json:"type,omitempty"`
|
|
||||||
Value *string `json:"value,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// MatcherApplyConfiguration constructs a declarative configuration of the Matcher type for use with
|
|
||||||
// apply.
|
|
||||||
func Matcher() *MatcherApplyConfiguration {
|
|
||||||
return &MatcherApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLabel sets the Label field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Label field is set to the value of the last call.
|
|
||||||
func (b *MatcherApplyConfiguration) WithLabel(value string) *MatcherApplyConfiguration {
|
|
||||||
b.Label = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithType sets the Type field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Type field is set to the value of the last call.
|
|
||||||
func (b *MatcherApplyConfiguration) WithType(value v0alpha1.MatcherType) *MatcherApplyConfiguration {
|
|
||||||
b.Type = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithValue sets the Value field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Value field is set to the value of the last call.
|
|
||||||
func (b *MatcherApplyConfiguration) WithValue(value string) *MatcherApplyConfiguration {
|
|
||||||
b.Value = &value
|
|
||||||
return b
|
|
||||||
}
|
|
@ -1,202 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
v1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ReceiverApplyConfiguration represents a declarative configuration of the Receiver type for use
|
|
||||||
// with apply.
|
|
||||||
type ReceiverApplyConfiguration struct {
|
|
||||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
|
||||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
|
||||||
Spec *ReceiverSpecApplyConfiguration `json:"spec,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Receiver constructs a declarative configuration of the Receiver type for use with
|
|
||||||
// apply.
|
|
||||||
func Receiver(name, namespace string) *ReceiverApplyConfiguration {
|
|
||||||
b := &ReceiverApplyConfiguration{}
|
|
||||||
b.WithName(name)
|
|
||||||
b.WithNamespace(namespace)
|
|
||||||
b.WithKind("Receiver")
|
|
||||||
b.WithAPIVersion("notifications.alerting.grafana.app/v0alpha1")
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithKind sets the Kind field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Kind field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithKind(value string) *ReceiverApplyConfiguration {
|
|
||||||
b.Kind = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the APIVersion field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithAPIVersion(value string) *ReceiverApplyConfiguration {
|
|
||||||
b.APIVersion = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithName sets the Name field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Name field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithName(value string) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Name = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the GenerateName field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithGenerateName(value string) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.GenerateName = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithNamespace sets the Namespace field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Namespace field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithNamespace(value string) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Namespace = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithUID sets the UID field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the UID field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithUID(value types.UID) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.UID = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the ResourceVersion field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithResourceVersion(value string) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.ResourceVersion = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGeneration sets the Generation field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Generation field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithGeneration(value int64) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Generation = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the CreationTimestamp field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.CreationTimestamp = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.DeletionTimestamp = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.DeletionGracePeriodSeconds = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLabels puts the entries into the Labels field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the entries provided by each call will be put on the Labels field,
|
|
||||||
// overwriting an existing map entries in Labels field with the same key.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithLabels(entries map[string]string) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
if b.Labels == nil && len(entries) > 0 {
|
|
||||||
b.Labels = make(map[string]string, len(entries))
|
|
||||||
}
|
|
||||||
for k, v := range entries {
|
|
||||||
b.Labels[k] = v
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithAnnotations puts the entries into the Annotations field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the entries provided by each call will be put on the Annotations field,
|
|
||||||
// overwriting an existing map entries in Annotations field with the same key.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithAnnotations(entries map[string]string) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
if b.Annotations == nil && len(entries) > 0 {
|
|
||||||
b.Annotations = make(map[string]string, len(entries))
|
|
||||||
}
|
|
||||||
for k, v := range entries {
|
|
||||||
b.Annotations[k] = v
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithOwnerReferences")
|
|
||||||
}
|
|
||||||
b.OwnerReferences = append(b.OwnerReferences, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Finalizers field.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithFinalizers(values ...string) *ReceiverApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
for i := range values {
|
|
||||||
b.Finalizers = append(b.Finalizers, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
func (b *ReceiverApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
|
|
||||||
if b.ObjectMetaApplyConfiguration == nil {
|
|
||||||
b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithSpec sets the Spec field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Spec field is set to the value of the last call.
|
|
||||||
func (b *ReceiverApplyConfiguration) WithSpec(value *ReceiverSpecApplyConfiguration) *ReceiverApplyConfiguration {
|
|
||||||
b.Spec = value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetName retrieves the value of the Name field in the declarative configuration.
|
|
||||||
func (b *ReceiverApplyConfiguration) GetName() *string {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
return b.Name
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
// ReceiverSpecApplyConfiguration represents a declarative configuration of the ReceiverSpec type for use
|
|
||||||
// with apply.
|
|
||||||
type ReceiverSpecApplyConfiguration struct {
|
|
||||||
Integrations []IntegrationApplyConfiguration `json:"integrations,omitempty"`
|
|
||||||
Title *string `json:"title,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ReceiverSpecApplyConfiguration constructs a declarative configuration of the ReceiverSpec type for use with
|
|
||||||
// apply.
|
|
||||||
func ReceiverSpec() *ReceiverSpecApplyConfiguration {
|
|
||||||
return &ReceiverSpecApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithIntegrations adds the given value to the Integrations field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Integrations field.
|
|
||||||
func (b *ReceiverSpecApplyConfiguration) WithIntegrations(values ...*IntegrationApplyConfiguration) *ReceiverSpecApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithIntegrations")
|
|
||||||
}
|
|
||||||
b.Integrations = append(b.Integrations, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithTitle sets the Title field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Title field is set to the value of the last call.
|
|
||||||
func (b *ReceiverSpecApplyConfiguration) WithTitle(value string) *ReceiverSpecApplyConfiguration {
|
|
||||||
b.Title = &value
|
|
||||||
return b
|
|
||||||
}
|
|
@ -1,111 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
// RouteApplyConfiguration represents a declarative configuration of the Route type for use
|
|
||||||
// with apply.
|
|
||||||
type RouteApplyConfiguration struct {
|
|
||||||
Continue *bool `json:"continue,omitempty"`
|
|
||||||
GroupBy []string `json:"group_by,omitempty"`
|
|
||||||
GroupInterval *string `json:"group_interval,omitempty"`
|
|
||||||
GroupWait *string `json:"group_wait,omitempty"`
|
|
||||||
Matchers []MatcherApplyConfiguration `json:"matchers,omitempty"`
|
|
||||||
MuteTimeIntervals []string `json:"mute_time_intervals,omitempty"`
|
|
||||||
Receiver *string `json:"receiver,omitempty"`
|
|
||||||
RepeatInterval *string `json:"repeat_interval,omitempty"`
|
|
||||||
Routes []RouteApplyConfiguration `json:"routes,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RouteApplyConfiguration constructs a declarative configuration of the Route type for use with
|
|
||||||
// apply.
|
|
||||||
func Route() *RouteApplyConfiguration {
|
|
||||||
return &RouteApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithContinue sets the Continue field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Continue field is set to the value of the last call.
|
|
||||||
func (b *RouteApplyConfiguration) WithContinue(value bool) *RouteApplyConfiguration {
|
|
||||||
b.Continue = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGroupBy adds the given value to the GroupBy field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the GroupBy field.
|
|
||||||
func (b *RouteApplyConfiguration) WithGroupBy(values ...string) *RouteApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
b.GroupBy = append(b.GroupBy, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGroupInterval sets the GroupInterval field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the GroupInterval field is set to the value of the last call.
|
|
||||||
func (b *RouteApplyConfiguration) WithGroupInterval(value string) *RouteApplyConfiguration {
|
|
||||||
b.GroupInterval = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGroupWait sets the GroupWait field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the GroupWait field is set to the value of the last call.
|
|
||||||
func (b *RouteApplyConfiguration) WithGroupWait(value string) *RouteApplyConfiguration {
|
|
||||||
b.GroupWait = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMatchers adds the given value to the Matchers field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Matchers field.
|
|
||||||
func (b *RouteApplyConfiguration) WithMatchers(values ...*MatcherApplyConfiguration) *RouteApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithMatchers")
|
|
||||||
}
|
|
||||||
b.Matchers = append(b.Matchers, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMuteTimeIntervals adds the given value to the MuteTimeIntervals field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the MuteTimeIntervals field.
|
|
||||||
func (b *RouteApplyConfiguration) WithMuteTimeIntervals(values ...string) *RouteApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
b.MuteTimeIntervals = append(b.MuteTimeIntervals, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithReceiver sets the Receiver field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Receiver field is set to the value of the last call.
|
|
||||||
func (b *RouteApplyConfiguration) WithReceiver(value string) *RouteApplyConfiguration {
|
|
||||||
b.Receiver = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithRepeatInterval sets the RepeatInterval field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the RepeatInterval field is set to the value of the last call.
|
|
||||||
func (b *RouteApplyConfiguration) WithRepeatInterval(value string) *RouteApplyConfiguration {
|
|
||||||
b.RepeatInterval = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithRoutes adds the given value to the Routes field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Routes field.
|
|
||||||
func (b *RouteApplyConfiguration) WithRoutes(values ...*RouteApplyConfiguration) *RouteApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithRoutes")
|
|
||||||
}
|
|
||||||
b.Routes = append(b.Routes, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
@ -1,63 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
// RouteDefaultsApplyConfiguration represents a declarative configuration of the RouteDefaults type for use
|
|
||||||
// with apply.
|
|
||||||
type RouteDefaultsApplyConfiguration struct {
|
|
||||||
GroupBy []string `json:"group_by,omitempty"`
|
|
||||||
GroupInterval *string `json:"group_interval,omitempty"`
|
|
||||||
GroupWait *string `json:"group_wait,omitempty"`
|
|
||||||
Receiver *string `json:"receiver,omitempty"`
|
|
||||||
RepeatInterval *string `json:"repeat_interval,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RouteDefaultsApplyConfiguration constructs a declarative configuration of the RouteDefaults type for use with
|
|
||||||
// apply.
|
|
||||||
func RouteDefaults() *RouteDefaultsApplyConfiguration {
|
|
||||||
return &RouteDefaultsApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGroupBy adds the given value to the GroupBy field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the GroupBy field.
|
|
||||||
func (b *RouteDefaultsApplyConfiguration) WithGroupBy(values ...string) *RouteDefaultsApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
b.GroupBy = append(b.GroupBy, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGroupInterval sets the GroupInterval field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the GroupInterval field is set to the value of the last call.
|
|
||||||
func (b *RouteDefaultsApplyConfiguration) WithGroupInterval(value string) *RouteDefaultsApplyConfiguration {
|
|
||||||
b.GroupInterval = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGroupWait sets the GroupWait field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the GroupWait field is set to the value of the last call.
|
|
||||||
func (b *RouteDefaultsApplyConfiguration) WithGroupWait(value string) *RouteDefaultsApplyConfiguration {
|
|
||||||
b.GroupWait = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithReceiver sets the Receiver field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Receiver field is set to the value of the last call.
|
|
||||||
func (b *RouteDefaultsApplyConfiguration) WithReceiver(value string) *RouteDefaultsApplyConfiguration {
|
|
||||||
b.Receiver = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithRepeatInterval sets the RepeatInterval field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the RepeatInterval field is set to the value of the last call.
|
|
||||||
func (b *RouteDefaultsApplyConfiguration) WithRepeatInterval(value string) *RouteDefaultsApplyConfiguration {
|
|
||||||
b.RepeatInterval = &value
|
|
||||||
return b
|
|
||||||
}
|
|
@ -1,202 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
v1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// RoutingTreeApplyConfiguration represents a declarative configuration of the RoutingTree type for use
|
|
||||||
// with apply.
|
|
||||||
type RoutingTreeApplyConfiguration struct {
|
|
||||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
|
||||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
|
||||||
Spec *RoutingTreeSpecApplyConfiguration `json:"spec,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RoutingTree constructs a declarative configuration of the RoutingTree type for use with
|
|
||||||
// apply.
|
|
||||||
func RoutingTree(name, namespace string) *RoutingTreeApplyConfiguration {
|
|
||||||
b := &RoutingTreeApplyConfiguration{}
|
|
||||||
b.WithName(name)
|
|
||||||
b.WithNamespace(namespace)
|
|
||||||
b.WithKind("RoutingTree")
|
|
||||||
b.WithAPIVersion("notifications.alerting.grafana.app/v0alpha1")
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithKind sets the Kind field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Kind field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithKind(value string) *RoutingTreeApplyConfiguration {
|
|
||||||
b.Kind = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the APIVersion field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithAPIVersion(value string) *RoutingTreeApplyConfiguration {
|
|
||||||
b.APIVersion = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithName sets the Name field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Name field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithName(value string) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Name = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the GenerateName field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithGenerateName(value string) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.GenerateName = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithNamespace sets the Namespace field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Namespace field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithNamespace(value string) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Namespace = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithUID sets the UID field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the UID field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithUID(value types.UID) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.UID = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the ResourceVersion field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithResourceVersion(value string) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.ResourceVersion = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGeneration sets the Generation field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Generation field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithGeneration(value int64) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Generation = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the CreationTimestamp field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.CreationTimestamp = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.DeletionTimestamp = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.DeletionGracePeriodSeconds = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLabels puts the entries into the Labels field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the entries provided by each call will be put on the Labels field,
|
|
||||||
// overwriting an existing map entries in Labels field with the same key.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithLabels(entries map[string]string) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
if b.Labels == nil && len(entries) > 0 {
|
|
||||||
b.Labels = make(map[string]string, len(entries))
|
|
||||||
}
|
|
||||||
for k, v := range entries {
|
|
||||||
b.Labels[k] = v
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithAnnotations puts the entries into the Annotations field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the entries provided by each call will be put on the Annotations field,
|
|
||||||
// overwriting an existing map entries in Annotations field with the same key.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithAnnotations(entries map[string]string) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
if b.Annotations == nil && len(entries) > 0 {
|
|
||||||
b.Annotations = make(map[string]string, len(entries))
|
|
||||||
}
|
|
||||||
for k, v := range entries {
|
|
||||||
b.Annotations[k] = v
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithOwnerReferences")
|
|
||||||
}
|
|
||||||
b.OwnerReferences = append(b.OwnerReferences, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Finalizers field.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithFinalizers(values ...string) *RoutingTreeApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
for i := range values {
|
|
||||||
b.Finalizers = append(b.Finalizers, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
func (b *RoutingTreeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
|
|
||||||
if b.ObjectMetaApplyConfiguration == nil {
|
|
||||||
b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithSpec sets the Spec field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Spec field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) WithSpec(value *RoutingTreeSpecApplyConfiguration) *RoutingTreeApplyConfiguration {
|
|
||||||
b.Spec = value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetName retrieves the value of the Name field in the declarative configuration.
|
|
||||||
func (b *RoutingTreeApplyConfiguration) GetName() *string {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
return b.Name
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
// RoutingTreeSpecApplyConfiguration represents a declarative configuration of the RoutingTreeSpec type for use
|
|
||||||
// with apply.
|
|
||||||
type RoutingTreeSpecApplyConfiguration struct {
|
|
||||||
Defaults *RouteDefaultsApplyConfiguration `json:"defaults,omitempty"`
|
|
||||||
Routes []RouteApplyConfiguration `json:"routes,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RoutingTreeSpecApplyConfiguration constructs a declarative configuration of the RoutingTreeSpec type for use with
|
|
||||||
// apply.
|
|
||||||
func RoutingTreeSpec() *RoutingTreeSpecApplyConfiguration {
|
|
||||||
return &RoutingTreeSpecApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDefaults sets the Defaults field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Defaults field is set to the value of the last call.
|
|
||||||
func (b *RoutingTreeSpecApplyConfiguration) WithDefaults(value *RouteDefaultsApplyConfiguration) *RoutingTreeSpecApplyConfiguration {
|
|
||||||
b.Defaults = value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithRoutes adds the given value to the Routes field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Routes field.
|
|
||||||
func (b *RoutingTreeSpecApplyConfiguration) WithRoutes(values ...*RouteApplyConfiguration) *RoutingTreeSpecApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithRoutes")
|
|
||||||
}
|
|
||||||
b.Routes = append(b.Routes, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
@ -1,202 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
v1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TemplateGroupApplyConfiguration represents a declarative configuration of the TemplateGroup type for use
|
|
||||||
// with apply.
|
|
||||||
type TemplateGroupApplyConfiguration struct {
|
|
||||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
|
||||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
|
||||||
Spec *TemplateGroupSpecApplyConfiguration `json:"spec,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TemplateGroup constructs a declarative configuration of the TemplateGroup type for use with
|
|
||||||
// apply.
|
|
||||||
func TemplateGroup(name, namespace string) *TemplateGroupApplyConfiguration {
|
|
||||||
b := &TemplateGroupApplyConfiguration{}
|
|
||||||
b.WithName(name)
|
|
||||||
b.WithNamespace(namespace)
|
|
||||||
b.WithKind("TemplateGroup")
|
|
||||||
b.WithAPIVersion("notifications.alerting.grafana.app/v0alpha1")
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithKind sets the Kind field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Kind field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithKind(value string) *TemplateGroupApplyConfiguration {
|
|
||||||
b.Kind = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the APIVersion field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithAPIVersion(value string) *TemplateGroupApplyConfiguration {
|
|
||||||
b.APIVersion = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithName sets the Name field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Name field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithName(value string) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Name = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the GenerateName field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithGenerateName(value string) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.GenerateName = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithNamespace sets the Namespace field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Namespace field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithNamespace(value string) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Namespace = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithUID sets the UID field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the UID field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithUID(value types.UID) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.UID = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the ResourceVersion field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithResourceVersion(value string) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.ResourceVersion = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGeneration sets the Generation field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Generation field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithGeneration(value int64) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Generation = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the CreationTimestamp field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithCreationTimestamp(value metav1.Time) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.CreationTimestamp = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.DeletionTimestamp = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.DeletionGracePeriodSeconds = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLabels puts the entries into the Labels field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the entries provided by each call will be put on the Labels field,
|
|
||||||
// overwriting an existing map entries in Labels field with the same key.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithLabels(entries map[string]string) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
if b.Labels == nil && len(entries) > 0 {
|
|
||||||
b.Labels = make(map[string]string, len(entries))
|
|
||||||
}
|
|
||||||
for k, v := range entries {
|
|
||||||
b.Labels[k] = v
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithAnnotations puts the entries into the Annotations field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the entries provided by each call will be put on the Annotations field,
|
|
||||||
// overwriting an existing map entries in Annotations field with the same key.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithAnnotations(entries map[string]string) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
if b.Annotations == nil && len(entries) > 0 {
|
|
||||||
b.Annotations = make(map[string]string, len(entries))
|
|
||||||
}
|
|
||||||
for k, v := range entries {
|
|
||||||
b.Annotations[k] = v
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithOwnerReferences")
|
|
||||||
}
|
|
||||||
b.OwnerReferences = append(b.OwnerReferences, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Finalizers field.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithFinalizers(values ...string) *TemplateGroupApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
for i := range values {
|
|
||||||
b.Finalizers = append(b.Finalizers, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
func (b *TemplateGroupApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
|
|
||||||
if b.ObjectMetaApplyConfiguration == nil {
|
|
||||||
b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithSpec sets the Spec field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Spec field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) WithSpec(value *TemplateGroupSpecApplyConfiguration) *TemplateGroupApplyConfiguration {
|
|
||||||
b.Spec = value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetName retrieves the value of the Name field in the declarative configuration.
|
|
||||||
func (b *TemplateGroupApplyConfiguration) GetName() *string {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
return b.Name
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
// TemplateGroupSpecApplyConfiguration represents a declarative configuration of the TemplateGroupSpec type for use
|
|
||||||
// with apply.
|
|
||||||
type TemplateGroupSpecApplyConfiguration struct {
|
|
||||||
Title *string `json:"title,omitempty"`
|
|
||||||
Content *string `json:"content,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TemplateGroupSpecApplyConfiguration constructs a declarative configuration of the TemplateGroupSpec type for use with
|
|
||||||
// apply.
|
|
||||||
func TemplateGroupSpec() *TemplateGroupSpecApplyConfiguration {
|
|
||||||
return &TemplateGroupSpecApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithTitle sets the Title field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Title field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupSpecApplyConfiguration) WithTitle(value string) *TemplateGroupSpecApplyConfiguration {
|
|
||||||
b.Title = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithContent sets the Content field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Content field is set to the value of the last call.
|
|
||||||
func (b *TemplateGroupSpecApplyConfiguration) WithContent(value string) *TemplateGroupSpecApplyConfiguration {
|
|
||||||
b.Content = &value
|
|
||||||
return b
|
|
||||||
}
|
|
@ -1,202 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
v1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TimeIntervalApplyConfiguration represents a declarative configuration of the TimeInterval type for use
|
|
||||||
// with apply.
|
|
||||||
type TimeIntervalApplyConfiguration struct {
|
|
||||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
|
||||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
|
||||||
Spec *TimeIntervalSpecApplyConfiguration `json:"spec,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TimeInterval constructs a declarative configuration of the TimeInterval type for use with
|
|
||||||
// apply.
|
|
||||||
func TimeInterval(name, namespace string) *TimeIntervalApplyConfiguration {
|
|
||||||
b := &TimeIntervalApplyConfiguration{}
|
|
||||||
b.WithName(name)
|
|
||||||
b.WithNamespace(namespace)
|
|
||||||
b.WithKind("TimeInterval")
|
|
||||||
b.WithAPIVersion("notifications.alerting.grafana.app/v0alpha1")
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithKind sets the Kind field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Kind field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithKind(value string) *TimeIntervalApplyConfiguration {
|
|
||||||
b.Kind = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the APIVersion field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithAPIVersion(value string) *TimeIntervalApplyConfiguration {
|
|
||||||
b.APIVersion = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithName sets the Name field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Name field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithName(value string) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Name = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGenerateName sets the GenerateName field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the GenerateName field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithGenerateName(value string) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.GenerateName = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithNamespace sets the Namespace field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Namespace field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithNamespace(value string) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Namespace = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithUID sets the UID field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the UID field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithUID(value types.UID) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.UID = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the ResourceVersion field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithResourceVersion(value string) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.ResourceVersion = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithGeneration sets the Generation field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Generation field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithGeneration(value int64) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.Generation = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the CreationTimestamp field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithCreationTimestamp(value metav1.Time) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.CreationTimestamp = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the DeletionTimestamp field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.DeletionTimestamp = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
b.DeletionGracePeriodSeconds = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLabels puts the entries into the Labels field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the entries provided by each call will be put on the Labels field,
|
|
||||||
// overwriting an existing map entries in Labels field with the same key.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithLabels(entries map[string]string) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
if b.Labels == nil && len(entries) > 0 {
|
|
||||||
b.Labels = make(map[string]string, len(entries))
|
|
||||||
}
|
|
||||||
for k, v := range entries {
|
|
||||||
b.Labels[k] = v
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithAnnotations puts the entries into the Annotations field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the entries provided by each call will be put on the Annotations field,
|
|
||||||
// overwriting an existing map entries in Annotations field with the same key.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithAnnotations(entries map[string]string) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
if b.Annotations == nil && len(entries) > 0 {
|
|
||||||
b.Annotations = make(map[string]string, len(entries))
|
|
||||||
}
|
|
||||||
for k, v := range entries {
|
|
||||||
b.Annotations[k] = v
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the OwnerReferences field.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithOwnerReferences")
|
|
||||||
}
|
|
||||||
b.OwnerReferences = append(b.OwnerReferences, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithFinalizers adds the given value to the Finalizers field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the Finalizers field.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithFinalizers(values ...string) *TimeIntervalApplyConfiguration {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
for i := range values {
|
|
||||||
b.Finalizers = append(b.Finalizers, values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
func (b *TimeIntervalApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {
|
|
||||||
if b.ObjectMetaApplyConfiguration == nil {
|
|
||||||
b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithSpec sets the Spec field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Spec field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) WithSpec(value *TimeIntervalSpecApplyConfiguration) *TimeIntervalApplyConfiguration {
|
|
||||||
b.Spec = value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetName retrieves the value of the Name field in the declarative configuration.
|
|
||||||
func (b *TimeIntervalApplyConfiguration) GetName() *string {
|
|
||||||
b.ensureObjectMetaApplyConfigurationExists()
|
|
||||||
return b.Name
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
// TimeIntervalSpecApplyConfiguration represents a declarative configuration of the TimeIntervalSpec type for use
|
|
||||||
// with apply.
|
|
||||||
type TimeIntervalSpecApplyConfiguration struct {
|
|
||||||
Name *string `json:"name,omitempty"`
|
|
||||||
TimeIntervals []IntervalApplyConfiguration `json:"time_intervals,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TimeIntervalSpecApplyConfiguration constructs a declarative configuration of the TimeIntervalSpec type for use with
|
|
||||||
// apply.
|
|
||||||
func TimeIntervalSpec() *TimeIntervalSpecApplyConfiguration {
|
|
||||||
return &TimeIntervalSpecApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithName sets the Name field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the Name field is set to the value of the last call.
|
|
||||||
func (b *TimeIntervalSpecApplyConfiguration) WithName(value string) *TimeIntervalSpecApplyConfiguration {
|
|
||||||
b.Name = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithTimeIntervals adds the given value to the TimeIntervals field in the declarative configuration
|
|
||||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
||||||
// If called multiple times, values provided by each call will be appended to the TimeIntervals field.
|
|
||||||
func (b *TimeIntervalSpecApplyConfiguration) WithTimeIntervals(values ...*IntervalApplyConfiguration) *TimeIntervalSpecApplyConfiguration {
|
|
||||||
for i := range values {
|
|
||||||
if values[i] == nil {
|
|
||||||
panic("nil value passed to WithTimeIntervals")
|
|
||||||
}
|
|
||||||
b.TimeIntervals = append(b.TimeIntervals, *values[i])
|
|
||||||
}
|
|
||||||
return b
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
// TimeRangeApplyConfiguration represents a declarative configuration of the TimeRange type for use
|
|
||||||
// with apply.
|
|
||||||
type TimeRangeApplyConfiguration struct {
|
|
||||||
EndTime *string `json:"end_time,omitempty"`
|
|
||||||
StartTime *string `json:"start_time,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TimeRangeApplyConfiguration constructs a declarative configuration of the TimeRange type for use with
|
|
||||||
// apply.
|
|
||||||
func TimeRange() *TimeRangeApplyConfiguration {
|
|
||||||
return &TimeRangeApplyConfiguration{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithEndTime sets the EndTime field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the EndTime field is set to the value of the last call.
|
|
||||||
func (b *TimeRangeApplyConfiguration) WithEndTime(value string) *TimeRangeApplyConfiguration {
|
|
||||||
b.EndTime = &value
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithStartTime sets the StartTime field in the declarative configuration to the given value
|
|
||||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
||||||
// If called multiple times, the StartTime field is set to the value of the last call.
|
|
||||||
func (b *TimeRangeApplyConfiguration) WithStartTime(value string) *TimeRangeApplyConfiguration {
|
|
||||||
b.StartTime = &value
|
|
||||||
return b
|
|
||||||
}
|
|
@ -5,11 +5,9 @@
|
|||||||
package applyconfiguration
|
package applyconfiguration
|
||||||
|
|
||||||
import (
|
import (
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
v0alpha1 "github.com/grafana/grafana/pkg/apis/service/v0alpha1"
|
||||||
servicev0alpha1 "github.com/grafana/grafana/pkg/apis/service/v0alpha1"
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/alerting_notifications/v0alpha1"
|
|
||||||
internal "github.com/grafana/grafana/pkg/generated/applyconfiguration/internal"
|
internal "github.com/grafana/grafana/pkg/generated/applyconfiguration/internal"
|
||||||
applyconfigurationservicev0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/service/v0alpha1"
|
servicev0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/service/v0alpha1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
testing "k8s.io/client-go/testing"
|
testing "k8s.io/client-go/testing"
|
||||||
@ -19,41 +17,11 @@ import (
|
|||||||
// apply configuration type exists for the given GroupVersionKind.
|
// apply configuration type exists for the given GroupVersionKind.
|
||||||
func ForKind(kind schema.GroupVersionKind) interface{} {
|
func ForKind(kind schema.GroupVersionKind) interface{} {
|
||||||
switch kind {
|
switch kind {
|
||||||
// Group=notifications.alerting.grafana.app, Version=v0alpha1
|
// Group=service.grafana.app, Version=v0alpha1
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("Integration"):
|
case v0alpha1.SchemeGroupVersion.WithKind("ExternalName"):
|
||||||
return &alertingnotificationsv0alpha1.IntegrationApplyConfiguration{}
|
return &servicev0alpha1.ExternalNameApplyConfiguration{}
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("Interval"):
|
case v0alpha1.SchemeGroupVersion.WithKind("ExternalNameSpec"):
|
||||||
return &alertingnotificationsv0alpha1.IntervalApplyConfiguration{}
|
return &servicev0alpha1.ExternalNameSpecApplyConfiguration{}
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("Matcher"):
|
|
||||||
return &alertingnotificationsv0alpha1.MatcherApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("Receiver"):
|
|
||||||
return &alertingnotificationsv0alpha1.ReceiverApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("ReceiverSpec"):
|
|
||||||
return &alertingnotificationsv0alpha1.ReceiverSpecApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("Route"):
|
|
||||||
return &alertingnotificationsv0alpha1.RouteApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("RouteDefaults"):
|
|
||||||
return &alertingnotificationsv0alpha1.RouteDefaultsApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("RoutingTree"):
|
|
||||||
return &alertingnotificationsv0alpha1.RoutingTreeApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("RoutingTreeSpec"):
|
|
||||||
return &alertingnotificationsv0alpha1.RoutingTreeSpecApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("TemplateGroup"):
|
|
||||||
return &alertingnotificationsv0alpha1.TemplateGroupApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("TemplateGroupSpec"):
|
|
||||||
return &alertingnotificationsv0alpha1.TemplateGroupSpecApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("TimeInterval"):
|
|
||||||
return &alertingnotificationsv0alpha1.TimeIntervalApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("TimeIntervalSpec"):
|
|
||||||
return &alertingnotificationsv0alpha1.TimeIntervalSpecApplyConfiguration{}
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithKind("TimeRange"):
|
|
||||||
return &alertingnotificationsv0alpha1.TimeRangeApplyConfiguration{}
|
|
||||||
|
|
||||||
// Group=service.grafana.app, Version=v0alpha1
|
|
||||||
case servicev0alpha1.SchemeGroupVersion.WithKind("ExternalName"):
|
|
||||||
return &applyconfigurationservicev0alpha1.ExternalNameApplyConfiguration{}
|
|
||||||
case servicev0alpha1.SchemeGroupVersion.WithKind("ExternalNameSpec"):
|
|
||||||
return &applyconfigurationservicev0alpha1.ExternalNameSpecApplyConfiguration{}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -8,7 +8,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
notificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/alerting_notifications/v0alpha1"
|
|
||||||
servicev0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/service/v0alpha1"
|
servicev0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/service/v0alpha1"
|
||||||
discovery "k8s.io/client-go/discovery"
|
discovery "k8s.io/client-go/discovery"
|
||||||
rest "k8s.io/client-go/rest"
|
rest "k8s.io/client-go/rest"
|
||||||
@ -17,20 +16,13 @@ import (
|
|||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
Discovery() discovery.DiscoveryInterface
|
Discovery() discovery.DiscoveryInterface
|
||||||
NotificationsV0alpha1() notificationsv0alpha1.NotificationsV0alpha1Interface
|
|
||||||
ServiceV0alpha1() servicev0alpha1.ServiceV0alpha1Interface
|
ServiceV0alpha1() servicev0alpha1.ServiceV0alpha1Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clientset contains the clients for groups.
|
// Clientset contains the clients for groups.
|
||||||
type Clientset struct {
|
type Clientset struct {
|
||||||
*discovery.DiscoveryClient
|
*discovery.DiscoveryClient
|
||||||
notificationsV0alpha1 *notificationsv0alpha1.NotificationsV0alpha1Client
|
serviceV0alpha1 *servicev0alpha1.ServiceV0alpha1Client
|
||||||
serviceV0alpha1 *servicev0alpha1.ServiceV0alpha1Client
|
|
||||||
}
|
|
||||||
|
|
||||||
// NotificationsV0alpha1 retrieves the NotificationsV0alpha1Client
|
|
||||||
func (c *Clientset) NotificationsV0alpha1() notificationsv0alpha1.NotificationsV0alpha1Interface {
|
|
||||||
return c.notificationsV0alpha1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServiceV0alpha1 retrieves the ServiceV0alpha1Client
|
// ServiceV0alpha1 retrieves the ServiceV0alpha1Client
|
||||||
@ -82,10 +74,6 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset,
|
|||||||
|
|
||||||
var cs Clientset
|
var cs Clientset
|
||||||
var err error
|
var err error
|
||||||
cs.notificationsV0alpha1, err = notificationsv0alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
cs.serviceV0alpha1, err = servicev0alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
|
cs.serviceV0alpha1, err = servicev0alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -111,7 +99,6 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
|
|||||||
// New creates a new Clientset for the given RESTClient.
|
// New creates a new Clientset for the given RESTClient.
|
||||||
func New(c rest.Interface) *Clientset {
|
func New(c rest.Interface) *Clientset {
|
||||||
var cs Clientset
|
var cs Clientset
|
||||||
cs.notificationsV0alpha1 = notificationsv0alpha1.New(c)
|
|
||||||
cs.serviceV0alpha1 = servicev0alpha1.New(c)
|
cs.serviceV0alpha1 = servicev0alpha1.New(c)
|
||||||
|
|
||||||
cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
|
||||||
|
@ -7,8 +7,6 @@ package fake
|
|||||||
import (
|
import (
|
||||||
applyconfiguration "github.com/grafana/grafana/pkg/generated/applyconfiguration"
|
applyconfiguration "github.com/grafana/grafana/pkg/generated/applyconfiguration"
|
||||||
clientset "github.com/grafana/grafana/pkg/generated/clientset/versioned"
|
clientset "github.com/grafana/grafana/pkg/generated/clientset/versioned"
|
||||||
notificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/alerting_notifications/v0alpha1"
|
|
||||||
fakenotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/alerting_notifications/v0alpha1/fake"
|
|
||||||
servicev0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/service/v0alpha1"
|
servicev0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/service/v0alpha1"
|
||||||
fakeservicev0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/service/v0alpha1/fake"
|
fakeservicev0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/service/v0alpha1/fake"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
@ -104,11 +102,6 @@ var (
|
|||||||
_ testing.FakeClient = &Clientset{}
|
_ testing.FakeClient = &Clientset{}
|
||||||
)
|
)
|
||||||
|
|
||||||
// NotificationsV0alpha1 retrieves the NotificationsV0alpha1Client
|
|
||||||
func (c *Clientset) NotificationsV0alpha1() notificationsv0alpha1.NotificationsV0alpha1Interface {
|
|
||||||
return &fakenotificationsv0alpha1.FakeNotificationsV0alpha1{Fake: &c.Fake}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServiceV0alpha1 retrieves the ServiceV0alpha1Client
|
// ServiceV0alpha1 retrieves the ServiceV0alpha1Client
|
||||||
func (c *Clientset) ServiceV0alpha1() servicev0alpha1.ServiceV0alpha1Interface {
|
func (c *Clientset) ServiceV0alpha1() servicev0alpha1.ServiceV0alpha1Interface {
|
||||||
return &fakeservicev0alpha1.FakeServiceV0alpha1{Fake: &c.Fake}
|
return &fakeservicev0alpha1.FakeServiceV0alpha1{Fake: &c.Fake}
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
package fake
|
package fake
|
||||||
|
|
||||||
import (
|
import (
|
||||||
notificationsv0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
servicev0alpha1 "github.com/grafana/grafana/pkg/apis/service/v0alpha1"
|
servicev0alpha1 "github.com/grafana/grafana/pkg/apis/service/v0alpha1"
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
@ -18,7 +17,6 @@ var scheme = runtime.NewScheme()
|
|||||||
var codecs = serializer.NewCodecFactory(scheme)
|
var codecs = serializer.NewCodecFactory(scheme)
|
||||||
|
|
||||||
var localSchemeBuilder = runtime.SchemeBuilder{
|
var localSchemeBuilder = runtime.SchemeBuilder{
|
||||||
notificationsv0alpha1.AddToScheme,
|
|
||||||
servicev0alpha1.AddToScheme,
|
servicev0alpha1.AddToScheme,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
package scheme
|
package scheme
|
||||||
|
|
||||||
import (
|
import (
|
||||||
notificationsv0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
servicev0alpha1 "github.com/grafana/grafana/pkg/apis/service/v0alpha1"
|
servicev0alpha1 "github.com/grafana/grafana/pkg/apis/service/v0alpha1"
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
@ -18,7 +17,6 @@ var Scheme = runtime.NewScheme()
|
|||||||
var Codecs = serializer.NewCodecFactory(Scheme)
|
var Codecs = serializer.NewCodecFactory(Scheme)
|
||||||
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
||||||
var localSchemeBuilder = runtime.SchemeBuilder{
|
var localSchemeBuilder = runtime.SchemeBuilder{
|
||||||
notificationsv0alpha1.AddToScheme,
|
|
||||||
servicev0alpha1.AddToScheme,
|
servicev0alpha1.AddToScheme,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,108 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
"github.com/grafana/grafana/pkg/generated/clientset/versioned/scheme"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
)
|
|
||||||
|
|
||||||
type NotificationsV0alpha1Interface interface {
|
|
||||||
RESTClient() rest.Interface
|
|
||||||
ReceiversGetter
|
|
||||||
RoutingTreesGetter
|
|
||||||
TemplateGroupsGetter
|
|
||||||
TimeIntervalsGetter
|
|
||||||
}
|
|
||||||
|
|
||||||
// NotificationsV0alpha1Client is used to interact with features provided by the notifications.alerting.grafana.app group.
|
|
||||||
type NotificationsV0alpha1Client struct {
|
|
||||||
restClient rest.Interface
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *NotificationsV0alpha1Client) Receivers(namespace string) ReceiverInterface {
|
|
||||||
return newReceivers(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *NotificationsV0alpha1Client) RoutingTrees(namespace string) RoutingTreeInterface {
|
|
||||||
return newRoutingTrees(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *NotificationsV0alpha1Client) TemplateGroups(namespace string) TemplateGroupInterface {
|
|
||||||
return newTemplateGroups(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *NotificationsV0alpha1Client) TimeIntervals(namespace string) TimeIntervalInterface {
|
|
||||||
return newTimeIntervals(c, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewForConfig creates a new NotificationsV0alpha1Client for the given config.
|
|
||||||
// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),
|
|
||||||
// where httpClient was generated with rest.HTTPClientFor(c).
|
|
||||||
func NewForConfig(c *rest.Config) (*NotificationsV0alpha1Client, error) {
|
|
||||||
config := *c
|
|
||||||
if err := setConfigDefaults(&config); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
httpClient, err := rest.HTTPClientFor(&config)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return NewForConfigAndClient(&config, httpClient)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewForConfigAndClient creates a new NotificationsV0alpha1Client for the given config and http client.
|
|
||||||
// Note the http client provided takes precedence over the configured transport values.
|
|
||||||
func NewForConfigAndClient(c *rest.Config, h *http.Client) (*NotificationsV0alpha1Client, error) {
|
|
||||||
config := *c
|
|
||||||
if err := setConfigDefaults(&config); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
client, err := rest.RESTClientForConfigAndClient(&config, h)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &NotificationsV0alpha1Client{client}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewForConfigOrDie creates a new NotificationsV0alpha1Client for the given config and
|
|
||||||
// panics if there is an error in the config.
|
|
||||||
func NewForConfigOrDie(c *rest.Config) *NotificationsV0alpha1Client {
|
|
||||||
client, err := NewForConfig(c)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return client
|
|
||||||
}
|
|
||||||
|
|
||||||
// New creates a new NotificationsV0alpha1Client for the given RESTClient.
|
|
||||||
func New(c rest.Interface) *NotificationsV0alpha1Client {
|
|
||||||
return &NotificationsV0alpha1Client{c}
|
|
||||||
}
|
|
||||||
|
|
||||||
func setConfigDefaults(config *rest.Config) error {
|
|
||||||
gv := v0alpha1.SchemeGroupVersion
|
|
||||||
config.GroupVersion = &gv
|
|
||||||
config.APIPath = "/apis"
|
|
||||||
config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
|
|
||||||
|
|
||||||
if config.UserAgent == "" {
|
|
||||||
config.UserAgent = rest.DefaultKubernetesUserAgent()
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// RESTClient returns a RESTClient that is used to communicate
|
|
||||||
// with API server by this client implementation.
|
|
||||||
func (c *NotificationsV0alpha1Client) RESTClient() rest.Interface {
|
|
||||||
if c == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return c.restClient
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
// This package has the automatically generated typed clients.
|
|
||||||
package v0alpha1
|
|
@ -1,6 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
// Package fake has the automatically generated clients.
|
|
||||||
package fake
|
|
@ -1,38 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/generated/clientset/versioned/typed/alerting_notifications/v0alpha1"
|
|
||||||
rest "k8s.io/client-go/rest"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
type FakeNotificationsV0alpha1 struct {
|
|
||||||
*testing.Fake
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeNotificationsV0alpha1) Receivers(namespace string) v0alpha1.ReceiverInterface {
|
|
||||||
return &FakeReceivers{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeNotificationsV0alpha1) RoutingTrees(namespace string) v0alpha1.RoutingTreeInterface {
|
|
||||||
return &FakeRoutingTrees{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeNotificationsV0alpha1) TemplateGroups(namespace string) v0alpha1.TemplateGroupInterface {
|
|
||||||
return &FakeTemplateGroups{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *FakeNotificationsV0alpha1) TimeIntervals(namespace string) v0alpha1.TimeIntervalInterface {
|
|
||||||
return &FakeTimeIntervals{c, namespace}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RESTClient returns a RESTClient that is used to communicate
|
|
||||||
// with API server by this client implementation.
|
|
||||||
func (c *FakeNotificationsV0alpha1) RESTClient() rest.Interface {
|
|
||||||
var ret *rest.RESTClient
|
|
||||||
return ret
|
|
||||||
}
|
|
@ -1,146 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
json "encoding/json"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/alerting_notifications/v0alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeReceivers implements ReceiverInterface
|
|
||||||
type FakeReceivers struct {
|
|
||||||
Fake *FakeNotificationsV0alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var receiversResource = v0alpha1.SchemeGroupVersion.WithResource("receivers")
|
|
||||||
|
|
||||||
var receiversKind = v0alpha1.SchemeGroupVersion.WithKind("Receiver")
|
|
||||||
|
|
||||||
// Get takes name of the receiver, and returns the corresponding receiver object, and an error if there is any.
|
|
||||||
func (c *FakeReceivers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v0alpha1.Receiver, err error) {
|
|
||||||
emptyResult := &v0alpha1.Receiver{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetActionWithOptions(receiversResource, c.ns, name, options), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.Receiver), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of Receivers that match those selectors.
|
|
||||||
func (c *FakeReceivers) List(ctx context.Context, opts v1.ListOptions) (result *v0alpha1.ReceiverList, err error) {
|
|
||||||
emptyResult := &v0alpha1.ReceiverList{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListActionWithOptions(receiversResource, receiversKind, c.ns, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v0alpha1.ReceiverList{ListMeta: obj.(*v0alpha1.ReceiverList).ListMeta}
|
|
||||||
for _, item := range obj.(*v0alpha1.ReceiverList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested receivers.
|
|
||||||
func (c *FakeReceivers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchActionWithOptions(receiversResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a receiver and creates it. Returns the server's representation of the receiver, and an error, if there is any.
|
|
||||||
func (c *FakeReceivers) Create(ctx context.Context, receiver *v0alpha1.Receiver, opts v1.CreateOptions) (result *v0alpha1.Receiver, err error) {
|
|
||||||
emptyResult := &v0alpha1.Receiver{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateActionWithOptions(receiversResource, c.ns, receiver, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.Receiver), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a receiver and updates it. Returns the server's representation of the receiver, and an error, if there is any.
|
|
||||||
func (c *FakeReceivers) Update(ctx context.Context, receiver *v0alpha1.Receiver, opts v1.UpdateOptions) (result *v0alpha1.Receiver, err error) {
|
|
||||||
emptyResult := &v0alpha1.Receiver{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateActionWithOptions(receiversResource, c.ns, receiver, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.Receiver), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the receiver and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeReceivers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteActionWithOptions(receiversResource, c.ns, name, opts), &v0alpha1.Receiver{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeReceivers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionActionWithOptions(receiversResource, c.ns, opts, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v0alpha1.ReceiverList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched receiver.
|
|
||||||
func (c *FakeReceivers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v0alpha1.Receiver, err error) {
|
|
||||||
emptyResult := &v0alpha1.Receiver{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceActionWithOptions(receiversResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.Receiver), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply takes the given apply declarative configuration, applies it and returns the applied receiver.
|
|
||||||
func (c *FakeReceivers) Apply(ctx context.Context, receiver *alertingnotificationsv0alpha1.ReceiverApplyConfiguration, opts v1.ApplyOptions) (result *v0alpha1.Receiver, err error) {
|
|
||||||
if receiver == nil {
|
|
||||||
return nil, fmt.Errorf("receiver provided to Apply must not be nil")
|
|
||||||
}
|
|
||||||
data, err := json.Marshal(receiver)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
name := receiver.Name
|
|
||||||
if name == nil {
|
|
||||||
return nil, fmt.Errorf("receiver.Name must be provided to Apply")
|
|
||||||
}
|
|
||||||
emptyResult := &v0alpha1.Receiver{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceActionWithOptions(receiversResource, c.ns, *name, types.ApplyPatchType, data, opts.ToPatchOptions()), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.Receiver), err
|
|
||||||
}
|
|
@ -1,146 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
json "encoding/json"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/alerting_notifications/v0alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeRoutingTrees implements RoutingTreeInterface
|
|
||||||
type FakeRoutingTrees struct {
|
|
||||||
Fake *FakeNotificationsV0alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var routingtreesResource = v0alpha1.SchemeGroupVersion.WithResource("routingtrees")
|
|
||||||
|
|
||||||
var routingtreesKind = v0alpha1.SchemeGroupVersion.WithKind("RoutingTree")
|
|
||||||
|
|
||||||
// Get takes name of the routingTree, and returns the corresponding routingTree object, and an error if there is any.
|
|
||||||
func (c *FakeRoutingTrees) Get(ctx context.Context, name string, options v1.GetOptions) (result *v0alpha1.RoutingTree, err error) {
|
|
||||||
emptyResult := &v0alpha1.RoutingTree{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetActionWithOptions(routingtreesResource, c.ns, name, options), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.RoutingTree), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of RoutingTrees that match those selectors.
|
|
||||||
func (c *FakeRoutingTrees) List(ctx context.Context, opts v1.ListOptions) (result *v0alpha1.RoutingTreeList, err error) {
|
|
||||||
emptyResult := &v0alpha1.RoutingTreeList{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListActionWithOptions(routingtreesResource, routingtreesKind, c.ns, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v0alpha1.RoutingTreeList{ListMeta: obj.(*v0alpha1.RoutingTreeList).ListMeta}
|
|
||||||
for _, item := range obj.(*v0alpha1.RoutingTreeList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested routingTrees.
|
|
||||||
func (c *FakeRoutingTrees) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchActionWithOptions(routingtreesResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a routingTree and creates it. Returns the server's representation of the routingTree, and an error, if there is any.
|
|
||||||
func (c *FakeRoutingTrees) Create(ctx context.Context, routingTree *v0alpha1.RoutingTree, opts v1.CreateOptions) (result *v0alpha1.RoutingTree, err error) {
|
|
||||||
emptyResult := &v0alpha1.RoutingTree{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateActionWithOptions(routingtreesResource, c.ns, routingTree, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.RoutingTree), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a routingTree and updates it. Returns the server's representation of the routingTree, and an error, if there is any.
|
|
||||||
func (c *FakeRoutingTrees) Update(ctx context.Context, routingTree *v0alpha1.RoutingTree, opts v1.UpdateOptions) (result *v0alpha1.RoutingTree, err error) {
|
|
||||||
emptyResult := &v0alpha1.RoutingTree{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateActionWithOptions(routingtreesResource, c.ns, routingTree, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.RoutingTree), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the routingTree and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeRoutingTrees) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteActionWithOptions(routingtreesResource, c.ns, name, opts), &v0alpha1.RoutingTree{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeRoutingTrees) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionActionWithOptions(routingtreesResource, c.ns, opts, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v0alpha1.RoutingTreeList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched routingTree.
|
|
||||||
func (c *FakeRoutingTrees) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v0alpha1.RoutingTree, err error) {
|
|
||||||
emptyResult := &v0alpha1.RoutingTree{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceActionWithOptions(routingtreesResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.RoutingTree), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply takes the given apply declarative configuration, applies it and returns the applied routingTree.
|
|
||||||
func (c *FakeRoutingTrees) Apply(ctx context.Context, routingTree *alertingnotificationsv0alpha1.RoutingTreeApplyConfiguration, opts v1.ApplyOptions) (result *v0alpha1.RoutingTree, err error) {
|
|
||||||
if routingTree == nil {
|
|
||||||
return nil, fmt.Errorf("routingTree provided to Apply must not be nil")
|
|
||||||
}
|
|
||||||
data, err := json.Marshal(routingTree)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
name := routingTree.Name
|
|
||||||
if name == nil {
|
|
||||||
return nil, fmt.Errorf("routingTree.Name must be provided to Apply")
|
|
||||||
}
|
|
||||||
emptyResult := &v0alpha1.RoutingTree{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceActionWithOptions(routingtreesResource, c.ns, *name, types.ApplyPatchType, data, opts.ToPatchOptions()), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.RoutingTree), err
|
|
||||||
}
|
|
@ -1,146 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
json "encoding/json"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/alerting_notifications/v0alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeTemplateGroups implements TemplateGroupInterface
|
|
||||||
type FakeTemplateGroups struct {
|
|
||||||
Fake *FakeNotificationsV0alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var templategroupsResource = v0alpha1.SchemeGroupVersion.WithResource("templategroups")
|
|
||||||
|
|
||||||
var templategroupsKind = v0alpha1.SchemeGroupVersion.WithKind("TemplateGroup")
|
|
||||||
|
|
||||||
// Get takes name of the templateGroup, and returns the corresponding templateGroup object, and an error if there is any.
|
|
||||||
func (c *FakeTemplateGroups) Get(ctx context.Context, name string, options v1.GetOptions) (result *v0alpha1.TemplateGroup, err error) {
|
|
||||||
emptyResult := &v0alpha1.TemplateGroup{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetActionWithOptions(templategroupsResource, c.ns, name, options), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TemplateGroup), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of TemplateGroups that match those selectors.
|
|
||||||
func (c *FakeTemplateGroups) List(ctx context.Context, opts v1.ListOptions) (result *v0alpha1.TemplateGroupList, err error) {
|
|
||||||
emptyResult := &v0alpha1.TemplateGroupList{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListActionWithOptions(templategroupsResource, templategroupsKind, c.ns, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v0alpha1.TemplateGroupList{ListMeta: obj.(*v0alpha1.TemplateGroupList).ListMeta}
|
|
||||||
for _, item := range obj.(*v0alpha1.TemplateGroupList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested templateGroups.
|
|
||||||
func (c *FakeTemplateGroups) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchActionWithOptions(templategroupsResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a templateGroup and creates it. Returns the server's representation of the templateGroup, and an error, if there is any.
|
|
||||||
func (c *FakeTemplateGroups) Create(ctx context.Context, templateGroup *v0alpha1.TemplateGroup, opts v1.CreateOptions) (result *v0alpha1.TemplateGroup, err error) {
|
|
||||||
emptyResult := &v0alpha1.TemplateGroup{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateActionWithOptions(templategroupsResource, c.ns, templateGroup, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TemplateGroup), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a templateGroup and updates it. Returns the server's representation of the templateGroup, and an error, if there is any.
|
|
||||||
func (c *FakeTemplateGroups) Update(ctx context.Context, templateGroup *v0alpha1.TemplateGroup, opts v1.UpdateOptions) (result *v0alpha1.TemplateGroup, err error) {
|
|
||||||
emptyResult := &v0alpha1.TemplateGroup{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateActionWithOptions(templategroupsResource, c.ns, templateGroup, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TemplateGroup), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the templateGroup and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeTemplateGroups) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteActionWithOptions(templategroupsResource, c.ns, name, opts), &v0alpha1.TemplateGroup{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeTemplateGroups) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionActionWithOptions(templategroupsResource, c.ns, opts, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v0alpha1.TemplateGroupList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched templateGroup.
|
|
||||||
func (c *FakeTemplateGroups) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v0alpha1.TemplateGroup, err error) {
|
|
||||||
emptyResult := &v0alpha1.TemplateGroup{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceActionWithOptions(templategroupsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TemplateGroup), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply takes the given apply declarative configuration, applies it and returns the applied templateGroup.
|
|
||||||
func (c *FakeTemplateGroups) Apply(ctx context.Context, templateGroup *alertingnotificationsv0alpha1.TemplateGroupApplyConfiguration, opts v1.ApplyOptions) (result *v0alpha1.TemplateGroup, err error) {
|
|
||||||
if templateGroup == nil {
|
|
||||||
return nil, fmt.Errorf("templateGroup provided to Apply must not be nil")
|
|
||||||
}
|
|
||||||
data, err := json.Marshal(templateGroup)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
name := templateGroup.Name
|
|
||||||
if name == nil {
|
|
||||||
return nil, fmt.Errorf("templateGroup.Name must be provided to Apply")
|
|
||||||
}
|
|
||||||
emptyResult := &v0alpha1.TemplateGroup{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceActionWithOptions(templategroupsResource, c.ns, *name, types.ApplyPatchType, data, opts.ToPatchOptions()), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TemplateGroup), err
|
|
||||||
}
|
|
@ -1,146 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package fake
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
json "encoding/json"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/alerting_notifications/v0alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
labels "k8s.io/apimachinery/pkg/labels"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
testing "k8s.io/client-go/testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
// FakeTimeIntervals implements TimeIntervalInterface
|
|
||||||
type FakeTimeIntervals struct {
|
|
||||||
Fake *FakeNotificationsV0alpha1
|
|
||||||
ns string
|
|
||||||
}
|
|
||||||
|
|
||||||
var timeintervalsResource = v0alpha1.SchemeGroupVersion.WithResource("timeintervals")
|
|
||||||
|
|
||||||
var timeintervalsKind = v0alpha1.SchemeGroupVersion.WithKind("TimeInterval")
|
|
||||||
|
|
||||||
// Get takes name of the timeInterval, and returns the corresponding timeInterval object, and an error if there is any.
|
|
||||||
func (c *FakeTimeIntervals) Get(ctx context.Context, name string, options v1.GetOptions) (result *v0alpha1.TimeInterval, err error) {
|
|
||||||
emptyResult := &v0alpha1.TimeInterval{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewGetActionWithOptions(timeintervalsResource, c.ns, name, options), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TimeInterval), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// List takes label and field selectors, and returns the list of TimeIntervals that match those selectors.
|
|
||||||
func (c *FakeTimeIntervals) List(ctx context.Context, opts v1.ListOptions) (result *v0alpha1.TimeIntervalList, err error) {
|
|
||||||
emptyResult := &v0alpha1.TimeIntervalList{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewListActionWithOptions(timeintervalsResource, timeintervalsKind, c.ns, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
|
|
||||||
label, _, _ := testing.ExtractFromListOptions(opts)
|
|
||||||
if label == nil {
|
|
||||||
label = labels.Everything()
|
|
||||||
}
|
|
||||||
list := &v0alpha1.TimeIntervalList{ListMeta: obj.(*v0alpha1.TimeIntervalList).ListMeta}
|
|
||||||
for _, item := range obj.(*v0alpha1.TimeIntervalList).Items {
|
|
||||||
if label.Matches(labels.Set(item.Labels)) {
|
|
||||||
list.Items = append(list.Items, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Watch returns a watch.Interface that watches the requested timeIntervals.
|
|
||||||
func (c *FakeTimeIntervals) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
||||||
return c.Fake.
|
|
||||||
InvokesWatch(testing.NewWatchActionWithOptions(timeintervalsResource, c.ns, opts))
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create takes the representation of a timeInterval and creates it. Returns the server's representation of the timeInterval, and an error, if there is any.
|
|
||||||
func (c *FakeTimeIntervals) Create(ctx context.Context, timeInterval *v0alpha1.TimeInterval, opts v1.CreateOptions) (result *v0alpha1.TimeInterval, err error) {
|
|
||||||
emptyResult := &v0alpha1.TimeInterval{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewCreateActionWithOptions(timeintervalsResource, c.ns, timeInterval, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TimeInterval), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update takes the representation of a timeInterval and updates it. Returns the server's representation of the timeInterval, and an error, if there is any.
|
|
||||||
func (c *FakeTimeIntervals) Update(ctx context.Context, timeInterval *v0alpha1.TimeInterval, opts v1.UpdateOptions) (result *v0alpha1.TimeInterval, err error) {
|
|
||||||
emptyResult := &v0alpha1.TimeInterval{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewUpdateActionWithOptions(timeintervalsResource, c.ns, timeInterval, opts), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TimeInterval), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete takes name of the timeInterval and deletes it. Returns an error if one occurs.
|
|
||||||
func (c *FakeTimeIntervals) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
|
||||||
_, err := c.Fake.
|
|
||||||
Invokes(testing.NewDeleteActionWithOptions(timeintervalsResource, c.ns, name, opts), &v0alpha1.TimeInterval{})
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeleteCollection deletes a collection of objects.
|
|
||||||
func (c *FakeTimeIntervals) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
|
|
||||||
action := testing.NewDeleteCollectionActionWithOptions(timeintervalsResource, c.ns, opts, listOpts)
|
|
||||||
|
|
||||||
_, err := c.Fake.Invokes(action, &v0alpha1.TimeIntervalList{})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch applies the patch and returns the patched timeInterval.
|
|
||||||
func (c *FakeTimeIntervals) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v0alpha1.TimeInterval, err error) {
|
|
||||||
emptyResult := &v0alpha1.TimeInterval{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceActionWithOptions(timeintervalsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TimeInterval), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply takes the given apply declarative configuration, applies it and returns the applied timeInterval.
|
|
||||||
func (c *FakeTimeIntervals) Apply(ctx context.Context, timeInterval *alertingnotificationsv0alpha1.TimeIntervalApplyConfiguration, opts v1.ApplyOptions) (result *v0alpha1.TimeInterval, err error) {
|
|
||||||
if timeInterval == nil {
|
|
||||||
return nil, fmt.Errorf("timeInterval provided to Apply must not be nil")
|
|
||||||
}
|
|
||||||
data, err := json.Marshal(timeInterval)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
name := timeInterval.Name
|
|
||||||
if name == nil {
|
|
||||||
return nil, fmt.Errorf("timeInterval.Name must be provided to Apply")
|
|
||||||
}
|
|
||||||
emptyResult := &v0alpha1.TimeInterval{}
|
|
||||||
obj, err := c.Fake.
|
|
||||||
Invokes(testing.NewPatchSubresourceActionWithOptions(timeintervalsResource, c.ns, *name, types.ApplyPatchType, data, opts.ToPatchOptions()), emptyResult)
|
|
||||||
|
|
||||||
if obj == nil {
|
|
||||||
return emptyResult, err
|
|
||||||
}
|
|
||||||
return obj.(*v0alpha1.TimeInterval), err
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
type ReceiverExpansion interface{}
|
|
||||||
|
|
||||||
type RoutingTreeExpansion interface{}
|
|
||||||
|
|
||||||
type TemplateGroupExpansion interface{}
|
|
||||||
|
|
||||||
type TimeIntervalExpansion interface{}
|
|
@ -1,55 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/alerting_notifications/v0alpha1"
|
|
||||||
scheme "github.com/grafana/grafana/pkg/generated/clientset/versioned/scheme"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
gentype "k8s.io/client-go/gentype"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ReceiversGetter has a method to return a ReceiverInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type ReceiversGetter interface {
|
|
||||||
Receivers(namespace string) ReceiverInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// ReceiverInterface has methods to work with Receiver resources.
|
|
||||||
type ReceiverInterface interface {
|
|
||||||
Create(ctx context.Context, receiver *v0alpha1.Receiver, opts v1.CreateOptions) (*v0alpha1.Receiver, error)
|
|
||||||
Update(ctx context.Context, receiver *v0alpha1.Receiver, opts v1.UpdateOptions) (*v0alpha1.Receiver, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v0alpha1.Receiver, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v0alpha1.ReceiverList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v0alpha1.Receiver, err error)
|
|
||||||
Apply(ctx context.Context, receiver *alertingnotificationsv0alpha1.ReceiverApplyConfiguration, opts v1.ApplyOptions) (result *v0alpha1.Receiver, err error)
|
|
||||||
ReceiverExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// receivers implements ReceiverInterface
|
|
||||||
type receivers struct {
|
|
||||||
*gentype.ClientWithListAndApply[*v0alpha1.Receiver, *v0alpha1.ReceiverList, *alertingnotificationsv0alpha1.ReceiverApplyConfiguration]
|
|
||||||
}
|
|
||||||
|
|
||||||
// newReceivers returns a Receivers
|
|
||||||
func newReceivers(c *NotificationsV0alpha1Client, namespace string) *receivers {
|
|
||||||
return &receivers{
|
|
||||||
gentype.NewClientWithListAndApply[*v0alpha1.Receiver, *v0alpha1.ReceiverList, *alertingnotificationsv0alpha1.ReceiverApplyConfiguration](
|
|
||||||
"receivers",
|
|
||||||
c.RESTClient(),
|
|
||||||
scheme.ParameterCodec,
|
|
||||||
namespace,
|
|
||||||
func() *v0alpha1.Receiver { return &v0alpha1.Receiver{} },
|
|
||||||
func() *v0alpha1.ReceiverList { return &v0alpha1.ReceiverList{} }),
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,55 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/alerting_notifications/v0alpha1"
|
|
||||||
scheme "github.com/grafana/grafana/pkg/generated/clientset/versioned/scheme"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
gentype "k8s.io/client-go/gentype"
|
|
||||||
)
|
|
||||||
|
|
||||||
// RoutingTreesGetter has a method to return a RoutingTreeInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type RoutingTreesGetter interface {
|
|
||||||
RoutingTrees(namespace string) RoutingTreeInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// RoutingTreeInterface has methods to work with RoutingTree resources.
|
|
||||||
type RoutingTreeInterface interface {
|
|
||||||
Create(ctx context.Context, routingTree *v0alpha1.RoutingTree, opts v1.CreateOptions) (*v0alpha1.RoutingTree, error)
|
|
||||||
Update(ctx context.Context, routingTree *v0alpha1.RoutingTree, opts v1.UpdateOptions) (*v0alpha1.RoutingTree, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v0alpha1.RoutingTree, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v0alpha1.RoutingTreeList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v0alpha1.RoutingTree, err error)
|
|
||||||
Apply(ctx context.Context, routingTree *alertingnotificationsv0alpha1.RoutingTreeApplyConfiguration, opts v1.ApplyOptions) (result *v0alpha1.RoutingTree, err error)
|
|
||||||
RoutingTreeExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// routingTrees implements RoutingTreeInterface
|
|
||||||
type routingTrees struct {
|
|
||||||
*gentype.ClientWithListAndApply[*v0alpha1.RoutingTree, *v0alpha1.RoutingTreeList, *alertingnotificationsv0alpha1.RoutingTreeApplyConfiguration]
|
|
||||||
}
|
|
||||||
|
|
||||||
// newRoutingTrees returns a RoutingTrees
|
|
||||||
func newRoutingTrees(c *NotificationsV0alpha1Client, namespace string) *routingTrees {
|
|
||||||
return &routingTrees{
|
|
||||||
gentype.NewClientWithListAndApply[*v0alpha1.RoutingTree, *v0alpha1.RoutingTreeList, *alertingnotificationsv0alpha1.RoutingTreeApplyConfiguration](
|
|
||||||
"routingtrees",
|
|
||||||
c.RESTClient(),
|
|
||||||
scheme.ParameterCodec,
|
|
||||||
namespace,
|
|
||||||
func() *v0alpha1.RoutingTree { return &v0alpha1.RoutingTree{} },
|
|
||||||
func() *v0alpha1.RoutingTreeList { return &v0alpha1.RoutingTreeList{} }),
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,55 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/alerting_notifications/v0alpha1"
|
|
||||||
scheme "github.com/grafana/grafana/pkg/generated/clientset/versioned/scheme"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
gentype "k8s.io/client-go/gentype"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TemplateGroupsGetter has a method to return a TemplateGroupInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type TemplateGroupsGetter interface {
|
|
||||||
TemplateGroups(namespace string) TemplateGroupInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// TemplateGroupInterface has methods to work with TemplateGroup resources.
|
|
||||||
type TemplateGroupInterface interface {
|
|
||||||
Create(ctx context.Context, templateGroup *v0alpha1.TemplateGroup, opts v1.CreateOptions) (*v0alpha1.TemplateGroup, error)
|
|
||||||
Update(ctx context.Context, templateGroup *v0alpha1.TemplateGroup, opts v1.UpdateOptions) (*v0alpha1.TemplateGroup, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v0alpha1.TemplateGroup, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v0alpha1.TemplateGroupList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v0alpha1.TemplateGroup, err error)
|
|
||||||
Apply(ctx context.Context, templateGroup *alertingnotificationsv0alpha1.TemplateGroupApplyConfiguration, opts v1.ApplyOptions) (result *v0alpha1.TemplateGroup, err error)
|
|
||||||
TemplateGroupExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// templateGroups implements TemplateGroupInterface
|
|
||||||
type templateGroups struct {
|
|
||||||
*gentype.ClientWithListAndApply[*v0alpha1.TemplateGroup, *v0alpha1.TemplateGroupList, *alertingnotificationsv0alpha1.TemplateGroupApplyConfiguration]
|
|
||||||
}
|
|
||||||
|
|
||||||
// newTemplateGroups returns a TemplateGroups
|
|
||||||
func newTemplateGroups(c *NotificationsV0alpha1Client, namespace string) *templateGroups {
|
|
||||||
return &templateGroups{
|
|
||||||
gentype.NewClientWithListAndApply[*v0alpha1.TemplateGroup, *v0alpha1.TemplateGroupList, *alertingnotificationsv0alpha1.TemplateGroupApplyConfiguration](
|
|
||||||
"templategroups",
|
|
||||||
c.RESTClient(),
|
|
||||||
scheme.ParameterCodec,
|
|
||||||
namespace,
|
|
||||||
func() *v0alpha1.TemplateGroup { return &v0alpha1.TemplateGroup{} },
|
|
||||||
func() *v0alpha1.TemplateGroupList { return &v0alpha1.TemplateGroupList{} }),
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,55 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by client-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/generated/applyconfiguration/alerting_notifications/v0alpha1"
|
|
||||||
scheme "github.com/grafana/grafana/pkg/generated/clientset/versioned/scheme"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
types "k8s.io/apimachinery/pkg/types"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
gentype "k8s.io/client-go/gentype"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TimeIntervalsGetter has a method to return a TimeIntervalInterface.
|
|
||||||
// A group's client should implement this interface.
|
|
||||||
type TimeIntervalsGetter interface {
|
|
||||||
TimeIntervals(namespace string) TimeIntervalInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
// TimeIntervalInterface has methods to work with TimeInterval resources.
|
|
||||||
type TimeIntervalInterface interface {
|
|
||||||
Create(ctx context.Context, timeInterval *v0alpha1.TimeInterval, opts v1.CreateOptions) (*v0alpha1.TimeInterval, error)
|
|
||||||
Update(ctx context.Context, timeInterval *v0alpha1.TimeInterval, opts v1.UpdateOptions) (*v0alpha1.TimeInterval, error)
|
|
||||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
|
||||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
|
||||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v0alpha1.TimeInterval, error)
|
|
||||||
List(ctx context.Context, opts v1.ListOptions) (*v0alpha1.TimeIntervalList, error)
|
|
||||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
|
||||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v0alpha1.TimeInterval, err error)
|
|
||||||
Apply(ctx context.Context, timeInterval *alertingnotificationsv0alpha1.TimeIntervalApplyConfiguration, opts v1.ApplyOptions) (result *v0alpha1.TimeInterval, err error)
|
|
||||||
TimeIntervalExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// timeIntervals implements TimeIntervalInterface
|
|
||||||
type timeIntervals struct {
|
|
||||||
*gentype.ClientWithListAndApply[*v0alpha1.TimeInterval, *v0alpha1.TimeIntervalList, *alertingnotificationsv0alpha1.TimeIntervalApplyConfiguration]
|
|
||||||
}
|
|
||||||
|
|
||||||
// newTimeIntervals returns a TimeIntervals
|
|
||||||
func newTimeIntervals(c *NotificationsV0alpha1Client, namespace string) *timeIntervals {
|
|
||||||
return &timeIntervals{
|
|
||||||
gentype.NewClientWithListAndApply[*v0alpha1.TimeInterval, *v0alpha1.TimeIntervalList, *alertingnotificationsv0alpha1.TimeIntervalApplyConfiguration](
|
|
||||||
"timeintervals",
|
|
||||||
c.RESTClient(),
|
|
||||||
scheme.ParameterCodec,
|
|
||||||
namespace,
|
|
||||||
func() *v0alpha1.TimeInterval { return &v0alpha1.TimeInterval{} },
|
|
||||||
func() *v0alpha1.TimeIntervalList { return &v0alpha1.TimeIntervalList{} }),
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package alerting_notifications
|
|
||||||
|
|
||||||
import (
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/generated/informers/externalversions/alerting_notifications/v0alpha1"
|
|
||||||
internalinterfaces "github.com/grafana/grafana/pkg/generated/informers/externalversions/internalinterfaces"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Interface provides access to each of this group's versions.
|
|
||||||
type Interface interface {
|
|
||||||
// V0alpha1 provides access to shared informers for resources in V0alpha1.
|
|
||||||
V0alpha1() v0alpha1.Interface
|
|
||||||
}
|
|
||||||
|
|
||||||
type group struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
namespace string
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
}
|
|
||||||
|
|
||||||
// New returns a new Interface.
|
|
||||||
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
|
|
||||||
return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// V0alpha1 returns a new v0alpha1.Interface.
|
|
||||||
func (g *group) V0alpha1() v0alpha1.Interface {
|
|
||||||
return v0alpha1.New(g.factory, g.namespace, g.tweakListOptions)
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
internalinterfaces "github.com/grafana/grafana/pkg/generated/informers/externalversions/internalinterfaces"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Interface provides access to all the informers in this group version.
|
|
||||||
type Interface interface {
|
|
||||||
// Receivers returns a ReceiverInformer.
|
|
||||||
Receivers() ReceiverInformer
|
|
||||||
// RoutingTrees returns a RoutingTreeInformer.
|
|
||||||
RoutingTrees() RoutingTreeInformer
|
|
||||||
// TemplateGroups returns a TemplateGroupInformer.
|
|
||||||
TemplateGroups() TemplateGroupInformer
|
|
||||||
// TimeIntervals returns a TimeIntervalInformer.
|
|
||||||
TimeIntervals() TimeIntervalInformer
|
|
||||||
}
|
|
||||||
|
|
||||||
type version struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
namespace string
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
}
|
|
||||||
|
|
||||||
// New returns a new Interface.
|
|
||||||
func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {
|
|
||||||
return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Receivers returns a ReceiverInformer.
|
|
||||||
func (v *version) Receivers() ReceiverInformer {
|
|
||||||
return &receiverInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RoutingTrees returns a RoutingTreeInformer.
|
|
||||||
func (v *version) RoutingTrees() RoutingTreeInformer {
|
|
||||||
return &routingTreeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TemplateGroups returns a TemplateGroupInformer.
|
|
||||||
func (v *version) TemplateGroups() TemplateGroupInformer {
|
|
||||||
return &templateGroupInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TimeIntervals returns a TimeIntervalInformer.
|
|
||||||
func (v *version) TimeIntervals() TimeIntervalInformer {
|
|
||||||
return &timeIntervalInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
versioned "github.com/grafana/grafana/pkg/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/grafana/grafana/pkg/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/generated/listers/alerting_notifications/v0alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ReceiverInformer provides access to a shared informer and lister for
|
|
||||||
// Receivers.
|
|
||||||
type ReceiverInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v0alpha1.ReceiverLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type receiverInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewReceiverInformer constructs a new informer for Receiver type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewReceiverInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredReceiverInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredReceiverInformer constructs a new informer for Receiver type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredReceiverInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.NotificationsV0alpha1().Receivers(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.NotificationsV0alpha1().Receivers(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&alertingnotificationsv0alpha1.Receiver{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *receiverInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredReceiverInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *receiverInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&alertingnotificationsv0alpha1.Receiver{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *receiverInformer) Lister() v0alpha1.ReceiverLister {
|
|
||||||
return v0alpha1.NewReceiverLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
versioned "github.com/grafana/grafana/pkg/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/grafana/grafana/pkg/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/generated/listers/alerting_notifications/v0alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// RoutingTreeInformer provides access to a shared informer and lister for
|
|
||||||
// RoutingTrees.
|
|
||||||
type RoutingTreeInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v0alpha1.RoutingTreeLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type routingTreeInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewRoutingTreeInformer constructs a new informer for RoutingTree type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewRoutingTreeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredRoutingTreeInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredRoutingTreeInformer constructs a new informer for RoutingTree type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredRoutingTreeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.NotificationsV0alpha1().RoutingTrees(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.NotificationsV0alpha1().RoutingTrees(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&alertingnotificationsv0alpha1.RoutingTree{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *routingTreeInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredRoutingTreeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *routingTreeInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&alertingnotificationsv0alpha1.RoutingTree{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *routingTreeInformer) Lister() v0alpha1.RoutingTreeLister {
|
|
||||||
return v0alpha1.NewRoutingTreeLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
versioned "github.com/grafana/grafana/pkg/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/grafana/grafana/pkg/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/generated/listers/alerting_notifications/v0alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TemplateGroupInformer provides access to a shared informer and lister for
|
|
||||||
// TemplateGroups.
|
|
||||||
type TemplateGroupInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v0alpha1.TemplateGroupLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type templateGroupInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTemplateGroupInformer constructs a new informer for TemplateGroup type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewTemplateGroupInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTemplateGroupInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredTemplateGroupInformer constructs a new informer for TemplateGroup type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredTemplateGroupInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.NotificationsV0alpha1().TemplateGroups(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.NotificationsV0alpha1().TemplateGroups(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&alertingnotificationsv0alpha1.TemplateGroup{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *templateGroupInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTemplateGroupInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *templateGroupInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&alertingnotificationsv0alpha1.TemplateGroup{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *templateGroupInformer) Lister() v0alpha1.TemplateGroupLister {
|
|
||||||
return v0alpha1.NewTemplateGroupLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by informer-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
time "time"
|
|
||||||
|
|
||||||
alertingnotificationsv0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
versioned "github.com/grafana/grafana/pkg/generated/clientset/versioned"
|
|
||||||
internalinterfaces "github.com/grafana/grafana/pkg/generated/informers/externalversions/internalinterfaces"
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/generated/listers/alerting_notifications/v0alpha1"
|
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
||||||
watch "k8s.io/apimachinery/pkg/watch"
|
|
||||||
cache "k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TimeIntervalInformer provides access to a shared informer and lister for
|
|
||||||
// TimeIntervals.
|
|
||||||
type TimeIntervalInformer interface {
|
|
||||||
Informer() cache.SharedIndexInformer
|
|
||||||
Lister() v0alpha1.TimeIntervalLister
|
|
||||||
}
|
|
||||||
|
|
||||||
type timeIntervalInformer struct {
|
|
||||||
factory internalinterfaces.SharedInformerFactory
|
|
||||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
||||||
namespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTimeIntervalInformer constructs a new informer for TimeInterval type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewTimeIntervalInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTimeIntervalInformer(client, namespace, resyncPeriod, indexers, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFilteredTimeIntervalInformer constructs a new informer for TimeInterval type.
|
|
||||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
||||||
// one. This reduces memory footprint and number of connections to the server.
|
|
||||||
func NewFilteredTimeIntervalInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
||||||
return cache.NewSharedIndexInformer(
|
|
||||||
&cache.ListWatch{
|
|
||||||
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.NotificationsV0alpha1().TimeIntervals(namespace).List(context.TODO(), options)
|
|
||||||
},
|
|
||||||
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
|
|
||||||
if tweakListOptions != nil {
|
|
||||||
tweakListOptions(&options)
|
|
||||||
}
|
|
||||||
return client.NotificationsV0alpha1().TimeIntervals(namespace).Watch(context.TODO(), options)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
&alertingnotificationsv0alpha1.TimeInterval{},
|
|
||||||
resyncPeriod,
|
|
||||||
indexers,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *timeIntervalInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
||||||
return NewFilteredTimeIntervalInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *timeIntervalInformer) Informer() cache.SharedIndexInformer {
|
|
||||||
return f.factory.InformerFor(&alertingnotificationsv0alpha1.TimeInterval{}, f.defaultInformer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *timeIntervalInformer) Lister() v0alpha1.TimeIntervalLister {
|
|
||||||
return v0alpha1.NewTimeIntervalLister(f.Informer().GetIndexer())
|
|
||||||
}
|
|
@ -10,7 +10,6 @@ import (
|
|||||||
time "time"
|
time "time"
|
||||||
|
|
||||||
versioned "github.com/grafana/grafana/pkg/generated/clientset/versioned"
|
versioned "github.com/grafana/grafana/pkg/generated/clientset/versioned"
|
||||||
alertingnotifications "github.com/grafana/grafana/pkg/generated/informers/externalversions/alerting_notifications"
|
|
||||||
internalinterfaces "github.com/grafana/grafana/pkg/generated/informers/externalversions/internalinterfaces"
|
internalinterfaces "github.com/grafana/grafana/pkg/generated/informers/externalversions/internalinterfaces"
|
||||||
service "github.com/grafana/grafana/pkg/generated/informers/externalversions/service"
|
service "github.com/grafana/grafana/pkg/generated/informers/externalversions/service"
|
||||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
@ -241,14 +240,9 @@ type SharedInformerFactory interface {
|
|||||||
// client.
|
// client.
|
||||||
InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer
|
InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer
|
||||||
|
|
||||||
Notifications() alertingnotifications.Interface
|
|
||||||
Service() service.Interface
|
Service() service.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *sharedInformerFactory) Notifications() alertingnotifications.Interface {
|
|
||||||
return alertingnotifications.New(f, f.namespace, f.tweakListOptions)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *sharedInformerFactory) Service() service.Interface {
|
func (f *sharedInformerFactory) Service() service.Interface {
|
||||||
return service.New(f, f.namespace, f.tweakListOptions)
|
return service.New(f, f.namespace, f.tweakListOptions)
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,7 @@ package externalversions
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
v0alpha1 "github.com/grafana/grafana/pkg/apis/service/v0alpha1"
|
||||||
servicev0alpha1 "github.com/grafana/grafana/pkg/apis/service/v0alpha1"
|
|
||||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
cache "k8s.io/client-go/tools/cache"
|
cache "k8s.io/client-go/tools/cache"
|
||||||
)
|
)
|
||||||
@ -39,18 +38,8 @@ func (f *genericInformer) Lister() cache.GenericLister {
|
|||||||
// TODO extend this to unknown resources with a client pool
|
// TODO extend this to unknown resources with a client pool
|
||||||
func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
|
func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
|
||||||
switch resource {
|
switch resource {
|
||||||
// Group=notifications.alerting.grafana.app, Version=v0alpha1
|
// Group=service.grafana.app, Version=v0alpha1
|
||||||
case v0alpha1.SchemeGroupVersion.WithResource("receivers"):
|
case v0alpha1.SchemeGroupVersion.WithResource("externalnames"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Notifications().V0alpha1().Receivers().Informer()}, nil
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithResource("routingtrees"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Notifications().V0alpha1().RoutingTrees().Informer()}, nil
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithResource("templategroups"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Notifications().V0alpha1().TemplateGroups().Informer()}, nil
|
|
||||||
case v0alpha1.SchemeGroupVersion.WithResource("timeintervals"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Notifications().V0alpha1().TimeIntervals().Informer()}, nil
|
|
||||||
|
|
||||||
// Group=service.grafana.app, Version=v0alpha1
|
|
||||||
case servicev0alpha1.SchemeGroupVersion.WithResource("externalnames"):
|
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Service().V0alpha1().ExternalNames().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Service().V0alpha1().ExternalNames().Informer()}, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
// ReceiverListerExpansion allows custom methods to be added to
|
|
||||||
// ReceiverLister.
|
|
||||||
type ReceiverListerExpansion interface{}
|
|
||||||
|
|
||||||
// ReceiverNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// ReceiverNamespaceLister.
|
|
||||||
type ReceiverNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// RoutingTreeListerExpansion allows custom methods to be added to
|
|
||||||
// RoutingTreeLister.
|
|
||||||
type RoutingTreeListerExpansion interface{}
|
|
||||||
|
|
||||||
// RoutingTreeNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// RoutingTreeNamespaceLister.
|
|
||||||
type RoutingTreeNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// TemplateGroupListerExpansion allows custom methods to be added to
|
|
||||||
// TemplateGroupLister.
|
|
||||||
type TemplateGroupListerExpansion interface{}
|
|
||||||
|
|
||||||
// TemplateGroupNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// TemplateGroupNamespaceLister.
|
|
||||||
type TemplateGroupNamespaceListerExpansion interface{}
|
|
||||||
|
|
||||||
// TimeIntervalListerExpansion allows custom methods to be added to
|
|
||||||
// TimeIntervalLister.
|
|
||||||
type TimeIntervalListerExpansion interface{}
|
|
||||||
|
|
||||||
// TimeIntervalNamespaceListerExpansion allows custom methods to be added to
|
|
||||||
// TimeIntervalNamespaceLister.
|
|
||||||
type TimeIntervalNamespaceListerExpansion interface{}
|
|
@ -1,56 +0,0 @@
|
|||||||
// SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
// Code generated by lister-gen. DO NOT EDIT.
|
|
||||||
|
|
||||||
package v0alpha1
|
|
||||||
|
|
||||||
import (
|
|
||||||
v0alpha1 "github.com/grafana/grafana/pkg/apis/alerting_notifications/v0alpha1"
|
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
|
||||||
"k8s.io/client-go/listers"
|
|
||||||
"k8s.io/client-go/tools/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ReceiverLister helps list Receivers.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type ReceiverLister interface {
|
|
||||||
// List lists all Receivers in the indexer.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v0alpha1.Receiver, err error)
|
|
||||||
// Receivers returns an object that can list and get Receivers.
|
|
||||||
Receivers(namespace string) ReceiverNamespaceLister
|
|
||||||
ReceiverListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// receiverLister implements the ReceiverLister interface.
|
|
||||||
type receiverLister struct {
|
|
||||||
listers.ResourceIndexer[*v0alpha1.Receiver]
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewReceiverLister returns a new ReceiverLister.
|
|
||||||
func NewReceiverLister(indexer cache.Indexer) ReceiverLister {
|
|
||||||
return &receiverLister{listers.New[*v0alpha1.Receiver](indexer, v0alpha1.Resource("receiver"))}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Receivers returns an object that can list and get Receivers.
|
|
||||||
func (s *receiverLister) Receivers(namespace string) ReceiverNamespaceLister {
|
|
||||||
return receiverNamespaceLister{listers.NewNamespaced[*v0alpha1.Receiver](s.ResourceIndexer, namespace)}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ReceiverNamespaceLister helps list and get Receivers.
|
|
||||||
// All objects returned here must be treated as read-only.
|
|
||||||
type ReceiverNamespaceLister interface {
|
|
||||||
// List lists all Receivers in the indexer for a given namespace.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
List(selector labels.Selector) (ret []*v0alpha1.Receiver, err error)
|
|
||||||
// Get retrieves the Receiver from the indexer for a given namespace and name.
|
|
||||||
// Objects returned here must be treated as read-only.
|
|
||||||
Get(name string) (*v0alpha1.Receiver, error)
|
|
||||||
ReceiverNamespaceListerExpansion
|
|
||||||
}
|
|
||||||
|
|
||||||
// receiverNamespaceLister implements the ReceiverNamespaceLister
|
|
||||||
// interface.
|
|
||||||
type receiverNamespaceLister struct {
|
|
||||||
listers.ResourceIndexer[*v0alpha1.Receiver]
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user