diff --git a/Makefile b/Makefile index aa8045a397df..71fac7b7f82d 100644 --- a/Makefile +++ b/Makefile @@ -49,6 +49,13 @@ test: $(PRE) ## Runs all available test scripts # ============================ Local ============================ # +.PHONY: schema +schema: $(PRE) + @echo "[root] Regenerating schemas" + @(cd $(API_DIRECTORY) && make --no-print-directory schema) + @(cd $(WEB_DIRECTORY) && make --no-print-directory schema) + @echo "[root] Schema regenerated successfully" + .PHONY: check-license check-license: $(PRE) ## Checks if repo files contain valid license header @echo "Running license check" diff --git a/modules/api/Makefile b/modules/api/Makefile index 53cee2b538ae..8e7bd56f77df 100644 --- a/modules/api/Makefile +++ b/modules/api/Makefile @@ -2,6 +2,7 @@ ROOT_DIRECTORY = $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))/../. # Global makefile partial config include $(ROOT_DIRECTORY)/hack/include/config.mk +include $(ROOT_DIRECTORY)/hack/include/kind.mk # Local makefile partial config include hack/include/config.mk @@ -59,9 +60,11 @@ fix-go: $(PRE) .PHONY: run run: build - @$(API_DIST_BINARY) --kubeconfig=$(KUBECONFIG) \ - --sidecar-host=$(SIDECAR_HOST) \ - --auto-generate-certificates=$(AUTO_GENERATE_CERTIFICATES) + @$(API_DIST_BINARY) \ + --kubeconfig=$(KUBECONFIG) + +.PHONY: schema +schema: --ensure-kind-cluster build --swagger # ==================== PRIVATE ==================== # @@ -99,3 +102,12 @@ run: build exit 1 ; \ fi ; \ mkdir -p $(DIR) ; \ + +.PHONY: --swagger +--swagger: + @echo [$(APP_NAME)] Generating Swagger schema + @$(API_DIST_BINARY) \ + --kubeconfig=$(KUBECONFIG) \ + --metrics-provider=none \ + --openapi-enabled >/dev/null 2>&1 & curl -s --retry 10 --retry-connrefused $(BIND_ADDRESS):$(PORT)/apidocs.json > $(SCHEMA_DIRECTORY)/swagger.json; pkill $(APP_NAME) + @echo [$(APP_NAME)] Swagger schema generated successfully diff --git a/modules/api/go.mod b/modules/api/go.mod index 79d581ac015f..43973c2e78f2 100644 --- a/modules/api/go.mod +++ b/modules/api/go.mod @@ -4,6 +4,7 @@ go 1.22.0 require ( github.com/docker/distribution v2.8.3+incompatible + github.com/emicklei/go-restful-openapi/v2 v2.9.1 github.com/emicklei/go-restful/v3 v3.11.3 github.com/prometheus/client_golang v1.18.0 github.com/spf13/pflag v1.0.5 @@ -36,6 +37,7 @@ require ( github.com/go-logr/logr v1.4.1 // indirect github.com/go-openapi/jsonpointer v0.20.0 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect + github.com/go-openapi/spec v0.20.4 // indirect github.com/go-openapi/swag v0.22.4 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect diff --git a/modules/api/go.sum b/modules/api/go.sum index 9fc4f1da474e..88afcf2f9b9b 100644 --- a/modules/api/go.sum +++ b/modules/api/go.sum @@ -1,3 +1,5 @@ +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -18,6 +20,9 @@ github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/emicklei/go-restful-openapi/v2 v2.9.1 h1:Of8B1rXdG81il5TTiSY+9Qrh7pYOr8aLdynHIpvo7fM= +github.com/emicklei/go-restful-openapi/v2 v2.9.1/go.mod h1:VKNgZyYviM1hnyrjD9RDzP2RuE94xTXxV+u6MGN4v4k= +github.com/emicklei/go-restful/v3 v3.7.3/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emicklei/go-restful/v3 v3.11.3 h1:yagOQz/38xJmcNeZJtrUcKjkHRltIaIFXKWeG1SkWGE= github.com/emicklei/go-restful/v3 v3.11.3/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= @@ -30,11 +35,18 @@ github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= +github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= +github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= @@ -83,6 +95,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -92,6 +105,9 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= @@ -109,6 +125,7 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg= @@ -137,6 +154,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -167,6 +185,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= @@ -178,15 +197,20 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= @@ -208,16 +232,20 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/igm/sockjs-go.v2 v2.1.0 h1:Ehqymxnfkkwi8R7SZIUARn77M0slA8vki0VgcfOdALw= gopkg.in/igm/sockjs-go.v2 v2.1.0/go.mod h1:9l1o9p5TJvh2l+Q0EGE8USVB69QPfcvI7fR0HmbCk/8= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 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.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= diff --git a/modules/api/hack/include/config.mk b/modules/api/hack/include/config.mk index 63991b872b74..288d1976d5b5 100644 --- a/modules/api/hack/include/config.mk +++ b/modules/api/hack/include/config.mk @@ -6,6 +6,7 @@ PACKAGE_NAME := k8s.io/$(PROJECT_NAME)/api API_DIST_DIRECTORY = $(API_DIRECTORY)/.dist API_DIST_BINARY = $(API_DIST_DIRECTORY)/$(APP_NAME) COVERAGE_FILE = $(TMP_DIRECTORY)/$(APP_NAME).coverage.out +SCHEMA_DIRECTORY = $(API_DIRECTORY)/schema ### Codegen configuration INPUT = "apis/v1alpha1" @@ -20,4 +21,4 @@ KUBECONFIG ?= $(HOME)/.kube/config SIDECAR_HOST ?= http://scraper:8000 AUTO_GENERATE_CERTIFICATES ?= false BIND_ADDRESS ?= 127.0.0.1 -PORT ?= 8080 +PORT ?= 8000 diff --git a/modules/api/main.go b/modules/api/main.go index e20894941c8d..f6bc5c230458 100644 --- a/modules/api/main.go +++ b/modules/api/main.go @@ -20,6 +20,9 @@ import ( "net/http" "time" + restfulspec "github.com/emicklei/go-restful-openapi/v2" + "github.com/emicklei/go-restful/v3" + "github.com/go-openapi/spec" "github.com/prometheus/client_golang/prometheus/promhttp" "k8s.io/klog/v2" @@ -63,6 +66,11 @@ func main() { handleFatalInitError(err) } + if args.IsOpenAPIEnabled() { + klog.Info("Enabling OpenAPI endpoint on /apidocs.json") + configureOpenAPI(apiHandler) + } + certCreator := ecdsa.NewECDSACreator(args.KeyFile(), args.CertFile(), elliptic.P256()) certManager := certificates.NewCertManager(certCreator, args.DefaultCertDir(), args.AutogenerateCertificates()) certs, err := certManager.GetCertificates() @@ -70,7 +78,7 @@ func main() { handleFatalInitServingCertError(err) } - http.Handle("/api/", apiHandler) + http.Handle("/", apiHandler) http.Handle("/api/sockjs/", handler.CreateAttachHandler("/api/sockjs")) http.Handle("/metrics", promhttp.Handler()) @@ -125,6 +133,24 @@ func configureMetricsProvider(integrationManager integration.Manager) { } } +func configureOpenAPI(container *restful.Container) { + config := restfulspec.Config{ + WebServices: container.RegisteredWebServices(), + APIPath: "/apidocs.json", + PostBuildSwaggerObjectHandler: enrichOpenAPIObject, + } + container.Add(restfulspec.NewOpenAPIService(config)) +} + +func enrichOpenAPIObject(swo *spec.Swagger) { + swo.Info = &spec.Info{ + InfoProps: spec.InfoProps{ + Title: "Kubernetes Dashboard API", + Version: environment.Version, + }, + } +} + /** * Handles fatal init error that prevents server from doing any work. Prints verbose error * message and quits the server. diff --git a/modules/api/pkg/args/args.go b/modules/api/pkg/args/args.go index 7ee52d89b757..7c8652b9d34b 100644 --- a/modules/api/pkg/args/args.go +++ b/modules/api/pkg/args/args.go @@ -56,6 +56,7 @@ var ( argMetricsScraperServiceName = pflag.String("metrics-scraper-service-name", "kubernetes-dashboard-metrics-scraper", "name of the dashboard metrics scraper service") argDisableCSRFProtection = pflag.Bool("disable-csrf-protection", false, "allows disabling CSRF protection") argIsProxyEnabled = pflag.Bool("act-as-proxy", false, "forces dashboard to work in full proxy mode, meaning that any in-cluster calls are disabled") + argOpenAPIEnabled = pflag.Bool("openapi-enabled", false, "enables OpenAPI v2 endpoint under '/apidocs.json'") ) func init() { @@ -152,3 +153,7 @@ func IsCSRFProtectionEnabled() bool { func IsProxyEnabled() bool { return *argIsProxyEnabled } + +func IsOpenAPIEnabled() bool { + return *argOpenAPIEnabled +} diff --git a/modules/api/pkg/handler/apihandler.go b/modules/api/pkg/handler/apihandler.go index 599f5abe68ef..8f37267e00f7 100644 --- a/modules/api/pkg/handler/apihandler.go +++ b/modules/api/pkg/handler/apihandler.go @@ -21,6 +21,7 @@ import ( "strings" v1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/dashboard/api/pkg/resource/networkpolicy" "k8s.io/dashboard/client" @@ -90,7 +91,7 @@ type TerminalResponse struct { } // CreateHTTPAPIHandler creates a new HTTP handler that handles all requests to the API of the backend. -func CreateHTTPAPIHandler(iManager integration.Manager) (http.Handler, error) { +func CreateHTTPAPIHandler(iManager integration.Manager) (*restful.Container, error) { apiHandler := APIHandler{iManager: iManager} wsContainer := restful.NewContainer() wsContainer.EnableContentEncoding(true) @@ -100,6 +101,14 @@ func CreateHTTPAPIHandler(iManager integration.Manager) (http.Handler, error) { InstallFilters(apiV1Ws) apiV1Ws.Path("/api/v1"). + // docs + Doc("API v1 container"). + Param(apiV1Ws.QueryParameter("filterBy", "Comma delimited string used to apply filtering: 'propertyName,filterValue'")). + Param(apiV1Ws.QueryParameter("sortBy", "Name of the column to sort by")). + Param(apiV1Ws.QueryParameter("itemsPerPage", "Number of items to return when pagination is applied")). + Param(apiV1Ws.QueryParameter("page", "Page number to return items from")). + Param(apiV1Ws.QueryParameter("metricNames", "Metric names to download")). + Param(apiV1Ws.QueryParameter("aggregations", "Aggregations to be performed for each metric (default: sum)")). Consumes(restful.MIME_JSON). Produces(restful.MIME_JSON) wsContainer.Add(apiV1Ws) @@ -107,590 +116,1091 @@ func CreateHTTPAPIHandler(iManager integration.Manager) (http.Handler, error) { integrationHandler := integration.NewHandler(iManager) integrationHandler.Install(apiV1Ws) + // CSRF protection apiV1Ws.Route( - apiV1Ws.GET("csrftoken/{action}"). - To(apiHandler.handleGetCsrfToken). - Writes(csrf.Response{})) + apiV1Ws.GET("csrftoken/{action}").To(apiHandler.handleGetCsrfToken). + // docs + Doc("generates a one-time CSRF token that can be used by POST request"). + Param(apiV1Ws.PathParameter("action", "action name to generate CSRF token for")). + Writes(csrf.Response{}). + Returns(http.StatusOK, "OK", csrf.Response{})) + // App deployment apiV1Ws.Route( - apiV1Ws.POST("/appdeployment"). - To(apiHandler.handleDeploy). + apiV1Ws.POST("/appdeployment").To(apiHandler.handleDeploy). + // docs + Doc("creates an application based on provided deployment.AppDeploymentSpec"). Reads(deployment.AppDeploymentSpec{}). - Writes(deployment.AppDeploymentSpec{})) + Writes(deployment.AppDeploymentSpec{}). + Returns(http.StatusOK, "OK", deployment.AppDeploymentSpec{})) apiV1Ws.Route( - apiV1Ws.POST("/appdeployment/validate/name"). - To(apiHandler.handleNameValidity). + apiV1Ws.POST("/appdeployment/validate/name").To(apiHandler.handleNameValidity). + // docs + Doc("checks if provided name is valid"). Reads(validation.AppNameValiditySpec{}). - Writes(validation.AppNameValidity{})) + Writes(validation.AppNameValidity{}). + Returns(http.StatusOK, "OK", validation.AppNameValidity{})) apiV1Ws.Route( - apiV1Ws.POST("/appdeployment/validate/imagereference"). - To(apiHandler.handleImageReferenceValidity). + apiV1Ws.POST("/appdeployment/validate/imagereference").To(apiHandler.handleImageReferenceValidity). + // docs + Doc("checks if provided image is valid"). Reads(validation.ImageReferenceValiditySpec{}). - Writes(validation.ImageReferenceValidity{})) + Writes(validation.ImageReferenceValidity{}). + Returns(http.StatusOK, "OK", validation.ImageReferenceValidity{})) apiV1Ws.Route( - apiV1Ws.POST("/appdeployment/validate/protocol"). - To(apiHandler.handleProtocolValidity). + apiV1Ws.POST("/appdeployment/validate/protocol").To(apiHandler.handleProtocolValidity). + // docs + Doc("checks if provided service protocol is valid"). Reads(validation.ProtocolValiditySpec{}). - Writes(validation.ProtocolValidity{})) - apiV1Ws.Route( - apiV1Ws.GET("/appdeployment/protocols"). - To(apiHandler.handleGetAvailableProtocols). - Writes(deployment.Protocols{})) - - apiV1Ws.Route( - apiV1Ws.POST("/appdeploymentfromfile"). - To(apiHandler.handleDeployFromFile). + Writes(validation.ProtocolValidity{}). + Returns(http.StatusOK, "OK", validation.ProtocolValidity{})) + apiV1Ws.Route( + apiV1Ws.GET("/appdeployment/protocols").To(apiHandler.handleGetAvailableProtocols). + // docs + Doc("returns a list of available protocols for the service"). + Writes(deployment.Protocols{}). + Returns(http.StatusOK, "OK", deployment.Protocols{})) + apiV1Ws.Route( + apiV1Ws.POST("/appdeploymentfromfile").To(apiHandler.handleDeployFromFile). + // docs + Doc("create an application from file"). Reads(deployment.AppDeploymentFromFileSpec{}). - Writes(deployment.AppDeploymentFromFileResponse{})) - - apiV1Ws.Route( - apiV1Ws.GET("/replicationcontroller"). - To(apiHandler.handleGetReplicationControllerList). - Writes(replicationcontroller.ReplicationControllerList{})) - apiV1Ws.Route( - apiV1Ws.GET("/replicationcontroller/{namespace}"). - To(apiHandler.handleGetReplicationControllerList). - Writes(replicationcontroller.ReplicationControllerList{})) - apiV1Ws.Route( - apiV1Ws.GET("/replicationcontroller/{namespace}/{replicationController}"). - To(apiHandler.handleGetReplicationControllerDetail). - Writes(replicationcontroller.ReplicationControllerDetail{})) - apiV1Ws.Route( - apiV1Ws.POST("/replicationcontroller/{namespace}/{replicationController}/update/pod"). - To(apiHandler.handleUpdateReplicasCount). + Writes(deployment.AppDeploymentFromFileResponse{}). + Returns(http.StatusOK, "OK", deployment.AppDeploymentFromFileResponse{})) + + // ReplicationController + apiV1Ws.Route( + apiV1Ws.GET("/replicationcontroller").To(apiHandler.handleGetReplicationControllerList). + // docs + Doc("returns a list of ReplicationControllers from all namespaces"). + Writes(replicationcontroller.ReplicationControllerList{}). + Returns(http.StatusOK, "OK", replicationcontroller.ReplicationControllerList{})) + apiV1Ws.Route( + apiV1Ws.GET("/replicationcontroller/{namespace}").To(apiHandler.handleGetReplicationControllerList). + // docs + Doc("returns a list of ReplicationController in a namespace"). + Param(apiV1Ws.PathParameter("namespace", "namespace to get a list of ReplicationController from")). + Writes(replicationcontroller.ReplicationControllerList{}). + Returns(http.StatusOK, "OK", replicationcontroller.ReplicationControllerList{})) + apiV1Ws.Route( + apiV1Ws.GET("/replicationcontroller/{namespace}/{replicationController}").To(apiHandler.handleGetReplicationControllerDetail). + // docs + Doc("returns detailed information about ReplicationController"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicationController")). + Param(apiV1Ws.PathParameter("replicationController", "name of the ReplicationController")). + Writes(replicationcontroller.ReplicationControllerDetail{}). + Returns(http.StatusOK, "OK", replicationcontroller.ReplicationControllerDetail{})) + apiV1Ws.Route( + apiV1Ws.POST("/replicationcontroller/{namespace}/{replicationController}/update/pod").To(apiHandler.handleUpdateReplicasCount). + // docs + Doc("scales ReplicationController to a number of replicas"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicationController")). + Param(apiV1Ws.PathParameter("replicationController", "name of the ReplicationController")). Reads(replicationcontroller.ReplicationControllerSpec{})) apiV1Ws.Route( - apiV1Ws.GET("/replicationcontroller/{namespace}/{replicationController}/pod"). - To(apiHandler.handleGetReplicationControllerPods). - Writes(pod.PodList{})) - apiV1Ws.Route( - apiV1Ws.GET("/replicationcontroller/{namespace}/{replicationController}/event"). - To(apiHandler.handleGetReplicationControllerEvents). - Writes(common.EventList{})) - apiV1Ws.Route( - apiV1Ws.GET("/replicationcontroller/{namespace}/{replicationController}/service"). - To(apiHandler.handleGetReplicationControllerServices). - Writes(resourceService.ServiceList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/replicaset"). - To(apiHandler.handleGetReplicaSets). - Writes(replicaset.ReplicaSetList{})) - apiV1Ws.Route( - apiV1Ws.GET("/replicaset/{namespace}"). - To(apiHandler.handleGetReplicaSets). - Writes(replicaset.ReplicaSetList{})) - apiV1Ws.Route( - apiV1Ws.GET("/replicaset/{namespace}/{replicaSet}"). - To(apiHandler.handleGetReplicaSetDetail). - Writes(replicaset.ReplicaSetDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/replicaset/{namespace}/{replicaSet}/pod"). - To(apiHandler.handleGetReplicaSetPods). - Writes(pod.PodList{})) - apiV1Ws.Route( - apiV1Ws.GET("/replicaset/{namespace}/{replicaSet}/service"). - To(apiHandler.handleGetReplicaSetServices). - Writes(pod.PodList{})) - apiV1Ws.Route( - apiV1Ws.GET("/replicaset/{namespace}/{replicaSet}/event"). - To(apiHandler.handleGetReplicaSetEvents). - Writes(common.EventList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/pod"). - To(apiHandler.handleGetPods). - Writes(pod.PodList{})) - apiV1Ws.Route( - apiV1Ws.GET("/pod/{namespace}"). - To(apiHandler.handleGetPods). - Writes(pod.PodList{})) - apiV1Ws.Route( - apiV1Ws.GET("/pod/{namespace}/{pod}"). - To(apiHandler.handleGetPodDetail). - Writes(pod.PodDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/pod/{namespace}/{pod}/container"). - To(apiHandler.handleGetPodContainers). - Writes(pod.PodDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/pod/{namespace}/{pod}/event"). - To(apiHandler.handleGetPodEvents). - Writes(common.EventList{})) - apiV1Ws.Route( - apiV1Ws.GET("/pod/{namespace}/{pod}/shell/{container}"). - To(apiHandler.handleExecShell). - Writes(TerminalResponse{})) - apiV1Ws.Route( - apiV1Ws.GET("/pod/{namespace}/{pod}/persistentvolumeclaim"). - To(apiHandler.handleGetPodPersistentVolumeClaims). - Writes(persistentvolumeclaim.PersistentVolumeClaimList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/deployment"). - To(apiHandler.handleGetDeployments). - Writes(deployment.DeploymentList{})) - apiV1Ws.Route( - apiV1Ws.GET("/deployment/{namespace}"). - To(apiHandler.handleGetDeployments). - Writes(deployment.DeploymentList{})) - apiV1Ws.Route( - apiV1Ws.GET("/deployment/{namespace}/{deployment}"). - To(apiHandler.handleGetDeploymentDetail). - Writes(deployment.DeploymentDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/deployment/{namespace}/{deployment}/event"). - To(apiHandler.handleGetDeploymentEvents). - Writes(common.EventList{})) - apiV1Ws.Route( - apiV1Ws.GET("/deployment/{namespace}/{deployment}/oldreplicaset"). - To(apiHandler.handleGetDeploymentOldReplicaSets). - Writes(replicaset.ReplicaSetList{})) - apiV1Ws.Route( - apiV1Ws.GET("/deployment/{namespace}/{deployment}/newreplicaset"). - To(apiHandler.handleGetDeploymentNewReplicaSet). - Writes(replicaset.ReplicaSet{})) - apiV1Ws.Route( - apiV1Ws.PUT("/{kind}/{namespace}/{deployment}/pause"). - To(apiHandler.handleDeploymentPause). - Writes(deployment.DeploymentDetail{})) - apiV1Ws.Route( - apiV1Ws.PUT("/{kind}/{namespace}/{deployment}/rollback"). - To(apiHandler.handleDeploymentRollback). + apiV1Ws.GET("/replicationcontroller/{namespace}/{replicationController}/pod").To(apiHandler.handleGetReplicationControllerPods). + // docs + Doc("returns a list of Pods for ReplicationController"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicationController")). + Param(apiV1Ws.PathParameter("replicationController", "name of the ReplicationController")). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + apiV1Ws.Route( + apiV1Ws.GET("/replicationcontroller/{namespace}/{replicationController}/event").To(apiHandler.handleGetReplicationControllerEvents). + // docs + Doc("returns a list of Events for ReplicationController"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicationController")). + Param(apiV1Ws.PathParameter("replicationController", "name of the ReplicationController")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + apiV1Ws.Route( + apiV1Ws.GET("/replicationcontroller/{namespace}/{replicationController}/service").To(apiHandler.handleGetReplicationControllerServices). + // docs + Doc("returns a list of Services for ReplicationController"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicationController")). + Param(apiV1Ws.PathParameter("replicationController", "name of the ReplicationController")). + Writes(resourceService.ServiceList{}). + Returns(http.StatusOK, "OK", resourceService.ServiceList{})) + + // ReplicaSet + apiV1Ws.Route( + apiV1Ws.GET("/replicaset").To(apiHandler.handleGetReplicaSets). + // docs + Doc("returns a list of ReplicaSets from all namespaces"). + Writes(replicaset.ReplicaSetList{}). + Returns(http.StatusOK, "OK", replicaset.ReplicaSetList{})) + apiV1Ws.Route( + apiV1Ws.GET("/replicaset/{namespace}").To(apiHandler.handleGetReplicaSets). + // docs + Doc("returns a list of ReplicaSets in a namespace"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicaSets")). + Writes(replicaset.ReplicaSetList{}). + Returns(http.StatusOK, "OK", replicaset.ReplicaSetList{})) + apiV1Ws.Route( + apiV1Ws.GET("/replicaset/{namespace}/{replicaSet}").To(apiHandler.handleGetReplicaSetDetail). + // docs + Doc("returns detailed information about ReplicaSet"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicaSet")). + Param(apiV1Ws.PathParameter("replicaSet", "name of the ReplicaSets")). + Writes(replicaset.ReplicaSetDetail{}). + Returns(http.StatusOK, "OK", replicaset.ReplicaSetDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/replicaset/{namespace}/{replicaSet}/pod").To(apiHandler.handleGetReplicaSetPods). + // docs + Doc("returns a list of Pods for ReplicaSet"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicaSet")). + Param(apiV1Ws.PathParameter("replicaSet", "name of the ReplicaSets")). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + apiV1Ws.Route( + apiV1Ws.GET("/replicaset/{namespace}/{replicaSet}/service").To(apiHandler.handleGetReplicaSetServices). + // docs + Doc("returns a list of Services for ReplicaSet"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicaSet")). + Param(apiV1Ws.PathParameter("replicaSet", "name of the ReplicaSets")). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + apiV1Ws.Route( + apiV1Ws.GET("/replicaset/{namespace}/{replicaSet}/event").To(apiHandler.handleGetReplicaSetEvents). + // docs + Doc("returns a list of Events for ReplicaSet"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ReplicaSet")). + Param(apiV1Ws.PathParameter("replicaSet", "name of the ReplicaSets")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + + // Pod + apiV1Ws.Route( + apiV1Ws.GET("/pod").To(apiHandler.handleGetPods). + // docs + Doc("returns a list of Pods from all namespaces"). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + apiV1Ws.Route( + apiV1Ws.GET("/pod/{namespace}").To(apiHandler.handleGetPods). + // docs + Doc("returns a list of Pods in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Pod")). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + apiV1Ws.Route( + apiV1Ws.GET("/pod/{namespace}/{pod}").To(apiHandler.handleGetPodDetail). + // docs + Doc("returns detailed information about Pod"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Pod")). + Param(apiV1Ws.PathParameter("pod", "name of the Pod")). + Writes(pod.PodDetail{}). + Returns(http.StatusOK, "OK", pod.PodDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/pod/{namespace}/{pod}/container").To(apiHandler.handleGetPodContainers). + // docs + Doc("returns a list of containers for Pod"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Pod")). + Param(apiV1Ws.PathParameter("pod", "name of the Pod")). + Writes(pod.PodDetail{}). + Returns(http.StatusOK, "OK", pod.PodDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/pod/{namespace}/{pod}/event").To(apiHandler.handleGetPodEvents). + // docs + Doc("returns a list of Events for Pod"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Pod")). + Param(apiV1Ws.PathParameter("pod", "name of the Pod")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + apiV1Ws.Route( + apiV1Ws.GET("/pod/{namespace}/{pod}/shell/{container}").To(apiHandler.handleExecShell). + // docs + Doc("handles exec into pod"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Pod")). + Param(apiV1Ws.PathParameter("pod", "name of the Pod")). + Param(apiV1Ws.PathParameter("container", "name of container in the Pod")). + Writes(TerminalResponse{}). + Returns(http.StatusOK, "OK", TerminalResponse{})) + apiV1Ws.Route( + apiV1Ws.GET("/pod/{namespace}/{pod}/persistentvolumeclaim").To(apiHandler.handleGetPodPersistentVolumeClaims). + // docs + Doc("returns a list of containers for Pod"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Pod")). + Param(apiV1Ws.PathParameter("pod", "name of the Pod")). + Writes(persistentvolumeclaim.PersistentVolumeClaimList{}). + Returns(http.StatusOK, "OK", persistentvolumeclaim.PersistentVolumeClaimList{})) + + // Deployment + apiV1Ws.Route( + apiV1Ws.GET("/deployment").To(apiHandler.handleGetDeployments). + // docs + Doc("returns a list of Deployments from all namespaces"). + Writes(deployment.DeploymentList{}). + Returns(http.StatusOK, "OK", deployment.DeploymentList{})) + apiV1Ws.Route( + apiV1Ws.GET("/deployment/{namespace}").To(apiHandler.handleGetDeployments). + // docs + Doc("returns a list of Deployments in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Deployment")). + Writes(deployment.DeploymentList{}). + Returns(http.StatusOK, "OK", deployment.DeploymentList{})) + apiV1Ws.Route( + apiV1Ws.GET("/deployment/{namespace}/{deployment}").To(apiHandler.handleGetDeploymentDetail). + // docs + Doc("returns detailed information about Deployment"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Deployment")). + Param(apiV1Ws.PathParameter("deployment", "name of the Deployment")). + Writes(deployment.DeploymentDetail{}). + Returns(http.StatusOK, "OK", deployment.DeploymentDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/deployment/{namespace}/{deployment}/event").To(apiHandler.handleGetDeploymentEvents). + // docs + Doc("returns a list of Events for Deployment"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Deployment")). + Param(apiV1Ws.PathParameter("deployment", "name of the Deployment")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + apiV1Ws.Route( + apiV1Ws.GET("/deployment/{namespace}/{deployment}/oldreplicaset").To(apiHandler.handleGetDeploymentOldReplicaSets). + // docs + Doc("returns a list of old ReplicaSets for Deployment"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Deployment")). + Param(apiV1Ws.PathParameter("deployment", "name of the Deployment")). + Writes(replicaset.ReplicaSetList{}). + Returns(http.StatusOK, "OK", replicaset.ReplicaSetList{})) + apiV1Ws.Route( + apiV1Ws.GET("/deployment/{namespace}/{deployment}/newreplicaset").To(apiHandler.handleGetDeploymentNewReplicaSet). + // docs + Doc("returns a list of new ReplicaSets for Deployment"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Deployment")). + Param(apiV1Ws.PathParameter("deployment", "name of the Deployment")). + Writes(replicaset.ReplicaSet{}). + Returns(http.StatusOK, "OK", replicaset.ReplicaSet{})) + apiV1Ws.Route( + apiV1Ws.PUT("/deployment/{namespace}/{deployment}/pause").To(apiHandler.handleDeploymentPause). + // docs + Doc("pauses the Deployment"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Deployment")). + Param(apiV1Ws.PathParameter("deployment", "name of the Deployment")). + Writes(deployment.DeploymentDetail{}). + Returns(http.StatusOK, "OK", deployment.DeploymentDetail{})) + apiV1Ws.Route( + apiV1Ws.PUT("/deployment/{namespace}/{deployment}/rollback").To(apiHandler.handleDeploymentRollback). + // docs + Doc("rolls back the Deployment to the target revision"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Deployment")). + Param(apiV1Ws.PathParameter("deployment", "name of the Deployment")). Reads(deployment.RolloutSpec{}). - Writes(deployment.RolloutSpec{})) - apiV1Ws.Route( - apiV1Ws.PUT("/{kind}/{namespace}/{deployment}/restart"). - To(apiHandler.handleDeploymentRestart). - Writes(deployment.RolloutSpec{})) - apiV1Ws.Route( - apiV1Ws.PUT("/{kind}/{namespace}/{deployment}/resume"). - To(apiHandler.handleDeploymentResume). - Writes(deployment.DeploymentDetail{})) - - apiV1Ws.Route( - apiV1Ws.PUT("/scale/{kind}/{namespace}/{name}"). - To(apiHandler.handleScaleResource). - Writes(scaling.ReplicaCounts{})) - apiV1Ws.Route( - apiV1Ws.PUT("/scale/{kind}/{name}"). - To(apiHandler.handleScaleResource). - Writes(scaling.ReplicaCounts{})) - apiV1Ws.Route( - apiV1Ws.GET("/scale/{kind}/{namespace}/{name}"). - To(apiHandler.handleGetReplicaCount). - Writes(scaling.ReplicaCounts{})) - apiV1Ws.Route( - apiV1Ws.GET("/scale/{kind}/{name}"). - To(apiHandler.handleGetReplicaCount). - Writes(scaling.ReplicaCounts{})) - - apiV1Ws.Route( - apiV1Ws.GET("/daemonset"). - To(apiHandler.handleGetDaemonSetList). - Writes(daemonset.DaemonSetList{})) - apiV1Ws.Route( - apiV1Ws.GET("/daemonset/{namespace}"). - To(apiHandler.handleGetDaemonSetList). - Writes(daemonset.DaemonSetList{})) - apiV1Ws.Route( - apiV1Ws.GET("/daemonset/{namespace}/{daemonSet}"). - To(apiHandler.handleGetDaemonSetDetail). - Writes(daemonset.DaemonSetDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/daemonset/{namespace}/{daemonSet}/pod"). - To(apiHandler.handleGetDaemonSetPods). - Writes(pod.PodList{})) - apiV1Ws.Route( - apiV1Ws.GET("/daemonset/{namespace}/{daemonSet}/service"). - To(apiHandler.handleGetDaemonSetServices). - Writes(resourceService.ServiceList{})) - apiV1Ws.Route( - apiV1Ws.GET("/daemonset/{namespace}/{daemonSet}/event"). - To(apiHandler.handleGetDaemonSetEvents). - Writes(common.EventList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/horizontalpodautoscaler"). - To(apiHandler.handleGetHorizontalPodAutoscalerList). - Writes(horizontalpodautoscaler.HorizontalPodAutoscalerList{})) - apiV1Ws.Route( - apiV1Ws.GET("/horizontalpodautoscaler/{namespace}"). - To(apiHandler.handleGetHorizontalPodAutoscalerList). - Writes(horizontalpodautoscaler.HorizontalPodAutoscalerList{})) - apiV1Ws.Route( - apiV1Ws.GET("/{kind}/{namespace}/{name}/horizontalpodautoscaler"). - To(apiHandler.handleGetHorizontalPodAutoscalerListForResource). - Writes(horizontalpodautoscaler.HorizontalPodAutoscalerList{})) - apiV1Ws.Route( - apiV1Ws.GET("/horizontalpodautoscaler/{namespace}/{horizontalpodautoscaler}"). - To(apiHandler.handleGetHorizontalPodAutoscalerDetail). - Writes(horizontalpodautoscaler.HorizontalPodAutoscalerDetail{})) - - apiV1Ws.Route( - apiV1Ws.GET("/job"). - To(apiHandler.handleGetJobList). - Writes(job.JobList{})) - apiV1Ws.Route( - apiV1Ws.GET("/job/{namespace}"). - To(apiHandler.handleGetJobList). - Writes(job.JobList{})) - apiV1Ws.Route( - apiV1Ws.GET("/job/{namespace}/{name}"). - To(apiHandler.handleGetJobDetail). - Writes(job.JobDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/job/{namespace}/{name}/pod"). - To(apiHandler.handleGetJobPods). - Writes(pod.PodList{})) - apiV1Ws.Route( - apiV1Ws.GET("/job/{namespace}/{name}/event"). - To(apiHandler.handleGetJobEvents). - Writes(common.EventList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/cronjob"). - To(apiHandler.handleGetCronJobList). - Writes(cronjob.CronJobList{})) - apiV1Ws.Route( - apiV1Ws.GET("/cronjob/{namespace}"). - To(apiHandler.handleGetCronJobList). - Writes(cronjob.CronJobList{})) - apiV1Ws.Route( - apiV1Ws.GET("/cronjob/{namespace}/{name}"). - To(apiHandler.handleGetCronJobDetail). - Writes(cronjob.CronJobDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/cronjob/{namespace}/{name}/job"). - To(apiHandler.handleGetCronJobJobs). - Writes(job.JobList{})) - apiV1Ws.Route( - apiV1Ws.GET("/cronjob/{namespace}/{name}/event"). - To(apiHandler.handleGetCronJobEvents). - Writes(common.EventList{})) - apiV1Ws.Route( - apiV1Ws.PUT("/cronjob/{namespace}/{name}/trigger"). - To(apiHandler.handleTriggerCronJob)) - - apiV1Ws.Route( - apiV1Ws.POST("/namespace"). - To(apiHandler.handleCreateNamespace). + Writes(deployment.RolloutSpec{}). + Returns(http.StatusOK, "OK", deployment.RolloutSpec{})) + apiV1Ws.Route( + apiV1Ws.PUT("/deployment/{namespace}/{deployment}/restart").To(apiHandler.handleDeploymentRestart). + // docs + Doc("rollout restart of the Deployment"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Deployment")). + Param(apiV1Ws.PathParameter("deployment", "name of the Deployment")). + Writes(deployment.RolloutSpec{}). + Returns(http.StatusOK, "OK", deployment.RolloutSpec{})) + apiV1Ws.Route( + apiV1Ws.PUT("/deployment/{namespace}/{deployment}/resume").To(apiHandler.handleDeploymentResume). + // docs + Doc("resumes the Deployment"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Deployment")). + Param(apiV1Ws.PathParameter("deployment", "name of the Deployment")). + Writes(deployment.DeploymentDetail{}). + Returns(http.StatusOK, "OK", deployment.DeploymentDetail{})) + + // DaemonSet + apiV1Ws.Route( + apiV1Ws.GET("/daemonset").To(apiHandler.handleGetDaemonSetList). + // docs + Doc("returns a list of DaemonSets from all namespaces"). + Writes(daemonset.DaemonSetList{}). + Returns(http.StatusOK, "OK", daemonset.DaemonSetList{})) + apiV1Ws.Route( + apiV1Ws.GET("/daemonset/{namespace}").To(apiHandler.handleGetDaemonSetList). + // docs + Doc("returns a list of DaemonSets in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the DaemonSet")). + Writes(daemonset.DaemonSetList{}). + Returns(http.StatusOK, "OK", daemonset.DaemonSetList{})) + apiV1Ws.Route( + apiV1Ws.GET("/daemonset/{namespace}/{daemonSet}").To(apiHandler.handleGetDaemonSetDetail). + // docs + Doc("returns detailed information about DaemonSet"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the DaemonSet")). + Param(apiV1Ws.PathParameter("daemonSet", "name of the DaemonSet")). + Writes(daemonset.DaemonSetDetail{}). + Returns(http.StatusOK, "OK", daemonset.DaemonSetDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/daemonset/{namespace}/{daemonSet}/pod").To(apiHandler.handleGetDaemonSetPods). + // docs + Doc("returns a list of Pods for DaemonSet"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the DaemonSet")). + Param(apiV1Ws.PathParameter("daemonSet", "name of the DaemonSet")). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + apiV1Ws.Route( + apiV1Ws.GET("/daemonset/{namespace}/{daemonSet}/service").To(apiHandler.handleGetDaemonSetServices). + // docs + Doc("returns a list of Services for DaemonSet"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the DaemonSet")). + Param(apiV1Ws.PathParameter("daemonSet", "name of the DaemonSet")). + Writes(resourceService.ServiceList{}). + Returns(http.StatusOK, "OK", resourceService.ServiceList{})) + apiV1Ws.Route( + apiV1Ws.GET("/daemonset/{namespace}/{daemonSet}/event").To(apiHandler.handleGetDaemonSetEvents). + // docs + Doc("returns a list of Events for DaemonSet"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the DaemonSet")). + Param(apiV1Ws.PathParameter("daemonSet", "name of the DaemonSet")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + + // HorizontalPodAutoscaler + apiV1Ws.Route( + apiV1Ws.GET("/horizontalpodautoscaler").To(apiHandler.handleGetHorizontalPodAutoscalerList). + // docs + Doc("returns a list of HorizontalPodAutoscalers from all namespaces"). + Writes(horizontalpodautoscaler.HorizontalPodAutoscalerList{}). + Returns(http.StatusOK, "OK", horizontalpodautoscaler.HorizontalPodAutoscalerList{})) + apiV1Ws.Route( + apiV1Ws.GET("/horizontalpodautoscaler/{namespace}").To(apiHandler.handleGetHorizontalPodAutoscalerList). + // docs + Doc("returns a list of HorizontalPodAutoscalers in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the HorizontalPodAutoscaler")). + Writes(horizontalpodautoscaler.HorizontalPodAutoscalerList{}). + Returns(http.StatusOK, "OK", horizontalpodautoscaler.HorizontalPodAutoscalerList{})) + apiV1Ws.Route( + apiV1Ws.GET("/{kind}/{namespace}/{name}/horizontalpodautoscaler").To(apiHandler.handleGetHorizontalPodAutoscalerListForResource). + // docs + Doc("returns a list of HorizontalPodAutoscalers for resource"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource to get HorizontalPodAutoscalers for")). + Param(apiV1Ws.PathParameter("namespace", "namespace of the resource to get HorizontalPodAutoscalers for")). + Param(apiV1Ws.PathParameter("name", "name of the resource to get HorizontalPodAutoscalers for")). + Writes(horizontalpodautoscaler.HorizontalPodAutoscalerList{}). + Returns(http.StatusOK, "OK", horizontalpodautoscaler.HorizontalPodAutoscalerList{})) + apiV1Ws.Route( + apiV1Ws.GET("/horizontalpodautoscaler/{namespace}/{horizontalpodautoscaler}").To(apiHandler.handleGetHorizontalPodAutoscalerDetail). + // docs + Doc("returns detailed information about HorizontalPodAutoscaler"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the HorizontalPodAutoscaler")). + Param(apiV1Ws.PathParameter("horizontalpodautoscaler", "name of the HorizontalPodAutoscaler")). + Writes(horizontalpodautoscaler.HorizontalPodAutoscalerDetail{}). + Returns(http.StatusOK, "OK", horizontalpodautoscaler.HorizontalPodAutoscalerDetail{})) + + // Job + apiV1Ws.Route( + apiV1Ws.GET("/job").To(apiHandler.handleGetJobList). + // docs + Doc("returns a list of Jobs from all namespaces"). + Writes(job.JobList{}). + Returns(http.StatusOK, "OK", job.JobList{})) + apiV1Ws.Route( + apiV1Ws.GET("/job/{namespace}").To(apiHandler.handleGetJobList). + // docs + Doc("returns a list of Jobs in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Job")). + Writes(job.JobList{}). + Returns(http.StatusOK, "OK", job.JobList{})) + apiV1Ws.Route( + apiV1Ws.GET("/job/{namespace}/{name}").To(apiHandler.handleGetJobDetail). + // docs + Doc("returns detailed information about Job"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Job")). + Param(apiV1Ws.PathParameter("name", "name of the Job")). + Writes(job.JobDetail{}). + Returns(http.StatusOK, "OK", job.JobDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/job/{namespace}/{name}/pod").To(apiHandler.handleGetJobPods). + // docs + Doc("returns a list of Pods for Job"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Job")). + Param(apiV1Ws.PathParameter("name", "name of the Job")). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + apiV1Ws.Route( + apiV1Ws.GET("/job/{namespace}/{name}/event").To(apiHandler.handleGetJobEvents). + // docs + Doc("returns a list of Events for Job"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Job")). + Param(apiV1Ws.PathParameter("name", "name of the Job")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + + // CronJob + apiV1Ws.Route( + apiV1Ws.GET("/cronjob").To(apiHandler.handleGetCronJobList). + // docs + Doc("returns a list of CronJobs from all namespaces"). + Writes(cronjob.CronJobList{}). + Returns(http.StatusOK, "OK", cronjob.CronJobList{})) + apiV1Ws.Route( + apiV1Ws.GET("/cronjob/{namespace}").To(apiHandler.handleGetCronJobList). + // docs + Doc("returns a list of CronJobs in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the CronJob")). + Writes(cronjob.CronJobList{}). + Returns(http.StatusOK, "OK", cronjob.CronJobList{})) + apiV1Ws.Route( + apiV1Ws.GET("/cronjob/{namespace}/{name}").To(apiHandler.handleGetCronJobDetail). + // docs + Doc("returns detailed information about CronJob"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the CronJob")). + Param(apiV1Ws.PathParameter("name", "name of the CronJob")). + Writes(cronjob.CronJobDetail{}). + Returns(http.StatusOK, "OK", cronjob.CronJobDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/cronjob/{namespace}/{name}/job").To(apiHandler.handleGetCronJobJobs). + // docs + Doc("returns a list of Jobs for CronJob"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the CronJob")). + Param(apiV1Ws.PathParameter("name", "name of the CronJob")). + Writes(job.JobList{}). + Returns(http.StatusOK, "OK", job.JobList{})) + apiV1Ws.Route( + apiV1Ws.GET("/cronjob/{namespace}/{name}/event").To(apiHandler.handleGetCronJobEvents). + // docs + Doc("returns a list of Events for CronJob"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the CronJob")). + Param(apiV1Ws.PathParameter("name", "name of the CronJob")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + apiV1Ws.Route( + apiV1Ws.PUT("/cronjob/{namespace}/{name}/trigger").To(apiHandler.handleTriggerCronJob). + // docs + Doc("triggers a Job based on CronJob"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the CronJob")). + Param(apiV1Ws.PathParameter("name", "name of the CronJob")). + Returns(http.StatusOK, "OK", nil)) + + // Namespace + apiV1Ws.Route( + apiV1Ws.POST("/namespace").To(apiHandler.handleCreateNamespace). + // docs + Doc("create a Namespace"). Reads(ns.NamespaceSpec{}). - Writes(ns.NamespaceSpec{})) - apiV1Ws.Route( - apiV1Ws.GET("/namespace"). - To(apiHandler.handleGetNamespaces). - Writes(ns.NamespaceList{})) - apiV1Ws.Route( - apiV1Ws.GET("/namespace/{name}"). - To(apiHandler.handleGetNamespaceDetail). - Writes(ns.NamespaceDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/namespace/{name}/event"). - To(apiHandler.handleGetNamespaceEvents). - Writes(common.EventList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/event"). - To(apiHandler.handleGetEventList). - Writes(common.EventList{})) - apiV1Ws.Route( - apiV1Ws.GET("/event/{namespace}"). - To(apiHandler.handleGetEventList). - Writes(common.EventList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/secret"). - To(apiHandler.handleGetSecretList). - Writes(secret.SecretList{})) - apiV1Ws.Route( - apiV1Ws.GET("/secret/{namespace}"). - To(apiHandler.handleGetSecretList). - Writes(secret.SecretList{})) - apiV1Ws.Route( - apiV1Ws.GET("/secret/{namespace}/{name}"). - To(apiHandler.handleGetSecretDetail). - Writes(secret.SecretDetail{})) - apiV1Ws.Route( - apiV1Ws.POST("/secret"). - To(apiHandler.handleCreateImagePullSecret). + Writes(ns.NamespaceSpec{}). + Returns(http.StatusOK, "OK", ns.NamespaceSpec{})) + apiV1Ws.Route( + apiV1Ws.GET("/namespace").To(apiHandler.handleGetNamespaces). + // docs + Doc("returns a list of Namespaces"). + Writes(ns.NamespaceList{}). + Returns(http.StatusOK, "OK", ns.NamespaceList{})) + apiV1Ws.Route( + apiV1Ws.GET("/namespace/{name}").To(apiHandler.handleGetNamespaceDetail). + // docs + Doc("returns detailed information about Namespace"). + Param(apiV1Ws.PathParameter("name", "name of the Namespace")). + Writes(ns.NamespaceDetail{}). + Returns(http.StatusOK, "OK", ns.NamespaceDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/namespace/{name}/event").To(apiHandler.handleGetNamespaceEvents). + // docs + Doc("returns a list of Events for Namespace"). + Param(apiV1Ws.PathParameter("name", "name of the Namespace")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + + // Event + apiV1Ws.Route( + apiV1Ws.GET("/event").To(apiHandler.handleGetEventList). + // docs + Doc("returns a list of Events from all namespaces"). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + apiV1Ws.Route( + apiV1Ws.GET("/event/{namespace}").To(apiHandler.handleGetEventList). + // docs + Doc("returns a list of Events in a namespace"). + Param(apiV1Ws.PathParameter("namespace", "namespace to get Events from")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + + // Secret + apiV1Ws.Route( + apiV1Ws.GET("/secret").To(apiHandler.handleGetSecretList). + // docs + Doc("returns a list of Secrets from all namespaces"). + Writes(secret.SecretList{}). + Returns(http.StatusOK, "OK", secret.SecretList{})) + apiV1Ws.Route( + apiV1Ws.GET("/secret/{namespace}").To(apiHandler.handleGetSecretList). + // docs + Doc("returns a list of Secrets in a namespace"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Secret")). + Writes(secret.SecretList{}). + Returns(http.StatusOK, "OK", secret.SecretList{})) + apiV1Ws.Route( + apiV1Ws.GET("/secret/{namespace}/{name}").To(apiHandler.handleGetSecretDetail). + // docs + Doc("returns detailed information about Secret"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Secret")). + Param(apiV1Ws.PathParameter("name", "name of the Secret")). + Writes(secret.SecretDetail{}). + Returns(http.StatusOK, "OK", secret.SecretDetail{})) + apiV1Ws.Route( + apiV1Ws.POST("/secret").To(apiHandler.handleCreateImagePullSecret). + // docs + Doc("stores ImagePullSecret in a Kubernetes Secret"). Reads(secret.ImagePullSecretSpec{}). - Writes(secret.Secret{})) - - apiV1Ws.Route( - apiV1Ws.GET("/configmap"). - To(apiHandler.handleGetConfigMapList). - Writes(configmap.ConfigMapList{})) - apiV1Ws.Route( - apiV1Ws.GET("/configmap/{namespace}"). - To(apiHandler.handleGetConfigMapList). - Writes(configmap.ConfigMapList{})) - apiV1Ws.Route( - apiV1Ws.GET("/configmap/{namespace}/{configmap}"). - To(apiHandler.handleGetConfigMapDetail). - Writes(configmap.ConfigMapDetail{})) - - apiV1Ws.Route( - apiV1Ws.GET("/service"). - To(apiHandler.handleGetServiceList). - Writes(resourceService.ServiceList{})) - apiV1Ws.Route( - apiV1Ws.GET("/service/{namespace}"). - To(apiHandler.handleGetServiceList). - Writes(resourceService.ServiceList{})) - apiV1Ws.Route( - apiV1Ws.GET("/service/{namespace}/{service}"). - To(apiHandler.handleGetServiceDetail). - Writes(resourceService.ServiceDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/service/{namespace}/{service}/event"). - To(apiHandler.handleGetServiceEvent). - Writes(common.EventList{})) - apiV1Ws.Route( - apiV1Ws.GET("/service/{namespace}/{service}/pod"). - To(apiHandler.handleGetServicePods). - Writes(pod.PodList{})) - apiV1Ws.Route( - apiV1Ws.GET("/service/{namespace}/{service}/ingress"). - To(apiHandler.handleGetServiceIngressList). - Writes(ingress.IngressList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/serviceaccount"). - To(apiHandler.handleGetServiceAccountList). - Writes(serviceaccount.ServiceAccountList{})) - apiV1Ws.Route( - apiV1Ws.GET("/serviceaccount/{namespace}"). - To(apiHandler.handleGetServiceAccountList). - Writes(serviceaccount.ServiceAccountList{})) - apiV1Ws.Route( - apiV1Ws.GET("/serviceaccount/{namespace}/{serviceaccount}"). - To(apiHandler.handleGetServiceAccountDetail). - Writes(serviceaccount.ServiceAccountDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/serviceaccount/{namespace}/{serviceaccount}/secret"). - To(apiHandler.handleGetServiceAccountSecrets). - Writes(secret.SecretList{})) - apiV1Ws.Route( - apiV1Ws.GET("/serviceaccount/{namespace}/{serviceaccount}/imagepullsecret"). - To(apiHandler.handleGetServiceAccountImagePullSecrets). - Writes(secret.SecretList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/ingress"). - To(apiHandler.handleGetIngressList). - Writes(ingress.IngressList{})) - apiV1Ws.Route( - apiV1Ws.GET("/ingress/{namespace}"). - To(apiHandler.handleGetIngressList). - Writes(ingress.IngressList{})) - apiV1Ws.Route( - apiV1Ws.GET("/ingress/{namespace}/{name}"). - To(apiHandler.handleGetIngressDetail). - Writes(ingress.IngressDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/ingress/{namespace}/{ingress}/event"). - To(apiHandler.handleGetIngressEvent). - Writes(common.EventList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/networkpolicy"). - To(apiHandler.handleGetNetworkPolicyList). - Writes(networkpolicy.NetworkPolicyList{})) - apiV1Ws.Route( - apiV1Ws.GET("/networkpolicy/{namespace}"). - To(apiHandler.handleGetNetworkPolicyList). - Writes(networkpolicy.NetworkPolicyList{})) - apiV1Ws.Route( - apiV1Ws.GET("/networkpolicy/{namespace}/{networkpolicy}"). - To(apiHandler.handleGetNetworkPolicyDetail). - Writes(networkpolicy.NetworkPolicyDetail{})) - - apiV1Ws.Route( - apiV1Ws.GET("/statefulset"). - To(apiHandler.handleGetStatefulSetList). - Writes(statefulset.StatefulSetList{})) - apiV1Ws.Route( - apiV1Ws.GET("/statefulset/{namespace}"). - To(apiHandler.handleGetStatefulSetList). - Writes(statefulset.StatefulSetList{})) - apiV1Ws.Route( - apiV1Ws.GET("/statefulset/{namespace}/{statefulset}"). - To(apiHandler.handleGetStatefulSetDetail). - Writes(statefulset.StatefulSetDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/statefulset/{namespace}/{statefulset}/pod"). - To(apiHandler.handleGetStatefulSetPods). - Writes(pod.PodList{})) - apiV1Ws.Route( - apiV1Ws.GET("/statefulset/{namespace}/{statefulset}/event"). - To(apiHandler.handleGetStatefulSetEvents). - Writes(common.EventList{})) - - apiV1Ws.Route( - apiV1Ws.GET("/node"). - To(apiHandler.handleGetNodeList). - Writes(node.NodeList{})) - apiV1Ws.Route( - apiV1Ws.GET("/node/{name}"). - To(apiHandler.handleGetNodeDetail). - Writes(node.NodeDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/node/{name}/event"). - To(apiHandler.handleGetNodeEvents). - Writes(common.EventList{})) - apiV1Ws.Route( - apiV1Ws.GET("/node/{name}/pod"). - To(apiHandler.handleGetNodePods). - Writes(pod.PodList{})) - - apiV1Ws.Route( - apiV1Ws.DELETE("/_raw/{kind}/namespace/{namespace}/name/{name}"). - To(apiHandler.handleDeleteResource)) - apiV1Ws.Route( - apiV1Ws.GET("/_raw/{kind}/namespace/{namespace}/name/{name}"). - To(apiHandler.handleGetResource)) - apiV1Ws.Route( - apiV1Ws.PUT("/_raw/{kind}/namespace/{namespace}/name/{name}"). - To(apiHandler.handlePutResource)) - - apiV1Ws.Route( - apiV1Ws.DELETE("/_raw/{kind}/name/{name}"). - To(apiHandler.handleDeleteResource)) - apiV1Ws.Route( - apiV1Ws.GET("/_raw/{kind}/name/{name}"). - To(apiHandler.handleGetResource)) - apiV1Ws.Route( - apiV1Ws.PUT("/_raw/{kind}/name/{name}"). - To(apiHandler.handlePutResource)) - - apiV1Ws.Route( - apiV1Ws.GET("/clusterrole"). - To(apiHandler.handleGetClusterRoleList). - Writes(clusterrole.ClusterRoleList{})) - apiV1Ws.Route( - apiV1Ws.GET("/clusterrole/{name}"). - To(apiHandler.handleGetClusterRoleDetail). - Writes(clusterrole.ClusterRoleDetail{})) - - apiV1Ws.Route( - apiV1Ws.GET("/clusterrolebinding"). - To(apiHandler.handleGetClusterRoleBindingList). - Writes(clusterrolebinding.ClusterRoleBindingList{})) - apiV1Ws.Route( - apiV1Ws.GET("/clusterrolebinding/{name}"). - To(apiHandler.handleGetClusterRoleBindingDetail). - Writes(clusterrolebinding.ClusterRoleBindingDetail{})) - - apiV1Ws.Route( - apiV1Ws.GET("/role/{namespace}"). - To(apiHandler.handleGetRoleList). - Writes(role.RoleList{})) - apiV1Ws.Route( - apiV1Ws.GET("/role/{namespace}/{name}"). - To(apiHandler.handleGetRoleDetail). - Writes(role.RoleDetail{})) - - apiV1Ws.Route( - apiV1Ws.GET("/rolebinding/{namespace}"). - To(apiHandler.handleGetRoleBindingList). - Writes(rolebinding.RoleBindingList{})) - apiV1Ws.Route( - apiV1Ws.GET("/rolebinding/{namespace}/{name}"). - To(apiHandler.handleGetRoleBindingDetail). - Writes(rolebinding.RoleBindingDetail{})) - - apiV1Ws.Route( - apiV1Ws.GET("/persistentvolume"). - To(apiHandler.handleGetPersistentVolumeList). - Writes(persistentvolume.PersistentVolumeList{})) - apiV1Ws.Route( - apiV1Ws.GET("/persistentvolume/{persistentvolume}"). - To(apiHandler.handleGetPersistentVolumeDetail). - Writes(persistentvolume.PersistentVolumeDetail{})) - apiV1Ws.Route( - apiV1Ws.GET("/persistentvolume/namespace/{namespace}/name/{persistentvolume}"). - To(apiHandler.handleGetPersistentVolumeDetail). - Writes(persistentvolume.PersistentVolumeDetail{})) - + Writes(secret.Secret{}). + Returns(http.StatusOK, "OK", secret.Secret{})) + + // ConfigMap + apiV1Ws.Route( + apiV1Ws.GET("/configmap").To(apiHandler.handleGetConfigMapList). + // docs + Doc("returns a list of ConfigMaps from all namespaces"). + Writes(configmap.ConfigMapList{}). + Returns(http.StatusOK, "OK", configmap.ConfigMapList{})) + apiV1Ws.Route( + apiV1Ws.GET("/configmap/{namespace}").To(apiHandler.handleGetConfigMapList). + // docs + Doc("returns a list of ConfigMaps in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ConfigMap")). + Writes(configmap.ConfigMapList{}). + Returns(http.StatusOK, "OK", configmap.ConfigMapList{})) + apiV1Ws.Route( + apiV1Ws.GET("/configmap/{namespace}/{configmap}").To(apiHandler.handleGetConfigMapDetail). + // docs + Doc("returns detailed information about ConfigMap"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ConfigMap")). + Param(apiV1Ws.PathParameter("configmap", "name of the ConfigMap")). + Writes(configmap.ConfigMapDetail{}). + Returns(http.StatusOK, "OK", configmap.ConfigMapDetail{})) + + // Service + apiV1Ws.Route( + apiV1Ws.GET("/service").To(apiHandler.handleGetServiceList). + // docs + Doc("returns a list of Services from all namespaces"). + Writes(resourceService.ServiceList{}). + Returns(http.StatusOK, "OK", resourceService.ServiceList{})) + apiV1Ws.Route( + apiV1Ws.GET("/service/{namespace}").To(apiHandler.handleGetServiceList). + // docs + Doc("returns a list of Services in a namespace"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Service")). + Writes(resourceService.ServiceList{}). + Returns(http.StatusOK, "OK", resourceService.ServiceList{})) + apiV1Ws.Route( + apiV1Ws.GET("/service/{namespace}/{service}").To(apiHandler.handleGetServiceDetail). + // docs + Doc("returns detailed information about Service"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Service")). + Param(apiV1Ws.PathParameter("service", "name of the Service")). + Writes(resourceService.ServiceDetail{}). + Returns(http.StatusOK, "OK", resourceService.ServiceDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/service/{namespace}/{service}/event").To(apiHandler.handleGetServiceEvent). + // docs + Doc("returns a list of Events for Service"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Service")). + Param(apiV1Ws.PathParameter("service", "name of the Service")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + apiV1Ws.Route( + apiV1Ws.GET("/service/{namespace}/{service}/pod").To(apiHandler.handleGetServicePods). + // docs + Doc("returns a list of Pods for Service"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Service")). + Param(apiV1Ws.PathParameter("service", "name of the Service")). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + apiV1Ws.Route( + apiV1Ws.GET("/service/{namespace}/{service}/ingress").To(apiHandler.handleGetServiceIngressList). + // docs + Doc("returns a list of Ingresses for Service"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Service")). + Param(apiV1Ws.PathParameter("service", "name of the Service")). + Writes(ingress.IngressList{}). + Returns(http.StatusOK, "OK", ingress.IngressList{})) + + // ServiceAccount + apiV1Ws.Route( + apiV1Ws.GET("/serviceaccount").To(apiHandler.handleGetServiceAccountList). + // docs + Doc("returns a list of ServiceAccounts from all namespaces"). + Writes(serviceaccount.ServiceAccountList{}). + Returns(http.StatusOK, "OK", serviceaccount.ServiceAccountList{})) + apiV1Ws.Route( + apiV1Ws.GET("/serviceaccount/{namespace}").To(apiHandler.handleGetServiceAccountList). + // docs + Doc("returns a list of ServiceAccounts in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ServiceAccount")). + Writes(serviceaccount.ServiceAccountList{}). + Returns(http.StatusOK, "OK", serviceaccount.ServiceAccountList{})) + apiV1Ws.Route( + apiV1Ws.GET("/serviceaccount/{namespace}/{serviceaccount}").To(apiHandler.handleGetServiceAccountDetail). + // docs + Doc("returns detailed information about ServiceAccount"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ServiceAccount")). + Param(apiV1Ws.PathParameter("serviceaccount", "name of the ServiceAccount")). + Writes(serviceaccount.ServiceAccountDetail{}). + Returns(http.StatusOK, "OK", serviceaccount.ServiceAccountDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/serviceaccount/{namespace}/{serviceaccount}/secret").To(apiHandler.handleGetServiceAccountSecrets). + // docs + Doc("returns a list of Secrets for ServiceAccount"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ServiceAccount")). + Param(apiV1Ws.PathParameter("serviceaccount", "name of the ServiceAccount")). + Writes(secret.SecretList{}). + Returns(http.StatusOK, "OK", secret.SecretList{})) + apiV1Ws.Route( + apiV1Ws.GET("/serviceaccount/{namespace}/{serviceaccount}/imagepullsecret").To(apiHandler.handleGetServiceAccountImagePullSecrets). + // docs + Doc("returns a list of ImagePullSecret Secrets for ServiceAccount"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the ServiceAccount")). + Param(apiV1Ws.PathParameter("serviceaccount", "name of the ServiceAccount")). + Writes(secret.SecretList{}). + Returns(http.StatusOK, "OK", secret.SecretList{})) + + // Ingress + apiV1Ws.Route(apiV1Ws.GET("/ingress").To(apiHandler.handleGetIngressList). + // docs + Doc("returns a list of Ingresses from all namespaces"). + Writes(ingress.IngressList{}). + Returns(http.StatusOK, "OK", ingress.IngressList{})) + apiV1Ws.Route(apiV1Ws.GET("/ingress/{namespace}").To(apiHandler.handleGetIngressList). + // docs + Doc("returns a list of Ingresses in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Ingress")). + Writes(ingress.IngressList{}). + Returns(http.StatusOK, "OK", ingress.IngressList{})) + apiV1Ws.Route( + apiV1Ws.GET("/ingress/{namespace}/{name}").To(apiHandler.handleGetIngressDetail). + // docs + Doc("returns detailed information about Ingress"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Ingress")). + Param(apiV1Ws.PathParameter("name", "name of the Ingress")). + Writes(ingress.IngressDetail{}). + Returns(http.StatusOK, "OK", ingress.IngressDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/ingress/{namespace}/{ingress}/event").To(apiHandler.handleGetIngressEvent). + // docs + Doc("returns a list of Events for Ingress"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Ingress")). + Param(apiV1Ws.PathParameter("name", "name of the Ingress")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + + // NetworkPolicy + apiV1Ws.Route( + apiV1Ws.GET("/networkpolicy").To(apiHandler.handleGetNetworkPolicyList). + // docs + Doc("returns a list of NetworkPolicies from all namespaces"). + Writes(networkpolicy.NetworkPolicyList{}). + Returns(http.StatusOK, "OK", networkpolicy.NetworkPolicyList{})) + apiV1Ws.Route( + apiV1Ws.GET("/networkpolicy/{namespace}").To(apiHandler.handleGetNetworkPolicyList). + // docs + Doc("returns a list of NetworkPolicies in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the NetworkPolicy")). + Writes(networkpolicy.NetworkPolicyList{}). + Returns(http.StatusOK, "OK", networkpolicy.NetworkPolicyList{})) + apiV1Ws.Route( + apiV1Ws.GET("/networkpolicy/{namespace}/{networkpolicy}").To(apiHandler.handleGetNetworkPolicyDetail). + // docs + Doc("returns detailed information about NetworkPolicy"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the NetworkPolicy")). + Param(apiV1Ws.PathParameter("networkpolicy", "name of the NetworkPolicy")). + Writes(networkpolicy.NetworkPolicyDetail{}). + Returns(http.StatusOK, "OK", networkpolicy.NetworkPolicyDetail{})) + + // StatefulSet + apiV1Ws.Route( + apiV1Ws.GET("/statefulset").To(apiHandler.handleGetStatefulSetList). + // docs + Doc("returns a list of StatefulSets from all namespaces"). + Writes(statefulset.StatefulSetList{}). + Returns(http.StatusOK, "OK", statefulset.StatefulSetList{})) + apiV1Ws.Route( + apiV1Ws.GET("/statefulset/{namespace}").To(apiHandler.handleGetStatefulSetList). + // docs + Doc("returns a list of StatefulSets in a namespaces"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the StatefulSet")). + Writes(statefulset.StatefulSetList{}). + Returns(http.StatusOK, "OK", statefulset.StatefulSetList{})) + apiV1Ws.Route( + apiV1Ws.GET("/statefulset/{namespace}/{statefulset}").To(apiHandler.handleGetStatefulSetDetail). + // docs + Doc("returns detailed information about StatefulSets"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the StatefulSet")). + Param(apiV1Ws.PathParameter("statefulset", "name of the StatefulSet")). + Writes(statefulset.StatefulSetDetail{}). + Returns(http.StatusOK, "OK", statefulset.StatefulSetDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/statefulset/{namespace}/{statefulset}/pod").To(apiHandler.handleGetStatefulSetPods). + // docs + Doc("returns a list of Pods for StatefulSets"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the StatefulSet")). + Param(apiV1Ws.PathParameter("statefulset", "name of the StatefulSet")). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + apiV1Ws.Route( + apiV1Ws.GET("/statefulset/{namespace}/{statefulset}/event").To(apiHandler.handleGetStatefulSetEvents). + // docs + Doc("returns a list of Events for StatefulSets"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the StatefulSet")). + Param(apiV1Ws.PathParameter("statefulset", "name of the StatefulSet")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + + // Node + apiV1Ws.Route( + apiV1Ws.GET("/node").To(apiHandler.handleGetNodeList). + // docs + Doc("returns a list of Nodes"). + Writes(node.NodeList{}). + Returns(http.StatusOK, "OK", node.NodeList{})) + apiV1Ws.Route( + apiV1Ws.GET("/node/{name}").To(apiHandler.handleGetNodeDetail). + // docs + Doc("returns detailed information about Node"). + Param(apiV1Ws.PathParameter("name", "name of the Node")). + Writes(node.NodeDetail{}). + Returns(http.StatusOK, "OK", node.NodeDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/node/{name}/event").To(apiHandler.handleGetNodeEvents). + // docs + Doc("returns a list of Events for Node"). + Param(apiV1Ws.PathParameter("name", "name of the Node")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + apiV1Ws.Route( + apiV1Ws.GET("/node/{name}/pod").To(apiHandler.handleGetNodePods). + // docs + Doc("returns a list of Pods for Node"). + Param(apiV1Ws.PathParameter("name", "name of the Node")). + Writes(pod.PodList{}). + Returns(http.StatusOK, "OK", pod.PodList{})) + + // Verber (namespaced) + apiV1Ws.Route( + apiV1Ws.DELETE("/_raw/{kind}/namespace/{namespace}/name/{name}").To(apiHandler.handleDeleteResource). + // docs + Doc("deletes a resource from a namespace"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("namespace", "namespace of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Returns(http.StatusOK, "OK", nil)) + apiV1Ws.Route( + apiV1Ws.GET("/_raw/{kind}/namespace/{namespace}/name/{name}").To(apiHandler.handleGetResource). + // docs + Doc("returns unstructured resource from a namespace"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("namespace", "namespace of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Writes(unstructured.Unstructured{}). + Returns(http.StatusOK, "OK", unstructured.Unstructured{})) + apiV1Ws.Route( + apiV1Ws.PUT("/_raw/{kind}/namespace/{namespace}/name/{name}").To(apiHandler.handlePutResource). + // docs + Doc("creates a resource in a namespace"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("namespace", "namespace of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Reads(runtime.Unknown{}). + Returns(http.StatusOK, "OK", runtime.Unknown{})) + + // Verber (non-namespaced) + apiV1Ws.Route( + apiV1Ws.DELETE("/_raw/{kind}/name/{name}").To(apiHandler.handleDeleteResource). + // docs + Doc("deletes a non-namespaced resource"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Returns(http.StatusOK, "OK", nil)) + apiV1Ws.Route( + apiV1Ws.GET("/_raw/{kind}/name/{name}").To(apiHandler.handleGetResource). + // docs + Doc("returns a non-namespaced resource"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Writes(unstructured.Unstructured{}). + Returns(http.StatusOK, "OK", unstructured.Unstructured{})) + apiV1Ws.Route( + apiV1Ws.PUT("/_raw/{kind}/name/{name}").To(apiHandler.handlePutResource). + // docs + Doc("creates a non-namespaced resource"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Reads(runtime.Unknown{}). + Returns(http.StatusOK, "OK", runtime.Unknown{})) + + // Generic resource scaling + apiV1Ws.Route( + apiV1Ws.PUT("/scale/{kind}/{namespace}/{name}").To(apiHandler.handleScaleResource). + // docs + Doc("scales a namespaced resource"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("namespace", "namespace of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Writes(scaling.ReplicaCounts{}). + Returns(http.StatusOK, "OK", scaling.ReplicaCounts{})) + apiV1Ws.Route( + apiV1Ws.PUT("/scale/{kind}/{name}").To(apiHandler.handleScaleResource). + // docs + Doc("scales a non-namespaced resource"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Writes(scaling.ReplicaCounts{}). + Returns(http.StatusOK, "OK", scaling.ReplicaCounts{})) + apiV1Ws.Route( + apiV1Ws.GET("/scale/{kind}/{namespace}/{name}").To(apiHandler.handleGetReplicaCount). + // docs + Doc("returns a number of replicas of namespaced resource"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("namespace", "namespace of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Writes(scaling.ReplicaCounts{}). + Returns(http.StatusOK, "OK", scaling.ReplicaCounts{})) + apiV1Ws.Route( + apiV1Ws.GET("/scale/{kind}/{name}").To(apiHandler.handleGetReplicaCount). + // docs + Doc("returns a number of replicas of non-namespaced resource"). + Param(apiV1Ws.PathParameter("kind", "kind of the resource")). + Param(apiV1Ws.PathParameter("name", "name of the resource")). + Writes(scaling.ReplicaCounts{}). + Returns(http.StatusOK, "OK", scaling.ReplicaCounts{})) + + // ClusterRole + apiV1Ws.Route( + apiV1Ws.GET("/clusterrole").To(apiHandler.handleGetClusterRoleList). + // docs + Doc("returns a list of ClusterRoles"). + Writes(clusterrole.ClusterRoleList{}). + Returns(http.StatusOK, "OK", clusterrole.ClusterRoleList{})) + apiV1Ws.Route( + apiV1Ws.GET("/clusterrole/{name}").To(apiHandler.handleGetClusterRoleDetail). + // docs + Doc("returns detailed information about ClusterRole"). + Param(apiV1Ws.PathParameter("name", "name of the ClusterRole")). + Writes(clusterrole.ClusterRoleDetail{}). + Returns(http.StatusOK, "OK", clusterrole.ClusterRoleDetail{})) + + // ClusterRoleBinding + apiV1Ws.Route( + apiV1Ws.GET("/clusterrolebinding").To(apiHandler.handleGetClusterRoleBindingList). + // docs + Doc("returns a list of ClusterRoleBindings"). + Writes(clusterrolebinding.ClusterRoleBindingList{}). + Returns(http.StatusOK, "OK", clusterrolebinding.ClusterRoleBindingList{})) + apiV1Ws.Route( + apiV1Ws.GET("/clusterrolebinding/{name}").To(apiHandler.handleGetClusterRoleBindingDetail). + // docs + Doc("returns detailed information about ClusterRoleBinding"). + Param(apiV1Ws.PathParameter("name", "name of the ClusterRoleBinding")). + Writes(clusterrolebinding.ClusterRoleBindingDetail{}). + Returns(http.StatusOK, "OK", clusterrolebinding.ClusterRoleBindingDetail{})) + + // Role + apiV1Ws.Route( + apiV1Ws.GET("/role/{namespace}").To(apiHandler.handleGetRoleList). + // docs + Doc("returns a list of Roles in a namespace"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Role")). + Writes(role.RoleList{}). + Returns(http.StatusOK, "OK", role.RoleList{})) + apiV1Ws.Route( + apiV1Ws.GET("/role/{namespace}/{name}").To(apiHandler.handleGetRoleDetail). + // docs + Doc("returns detailed information about Role"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Role")). + Param(apiV1Ws.PathParameter("name", "name of the Role")). + Writes(role.RoleDetail{}). + Returns(http.StatusOK, "OK", role.RoleDetail{})) + + // RoleBinding + apiV1Ws.Route( + apiV1Ws.GET("/rolebinding/{namespace}").To(apiHandler.handleGetRoleBindingList). + // docs + Doc("returns a list of RoleBindings in a namespace"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the RoleBinding")). + Writes(rolebinding.RoleBindingList{}). + Returns(http.StatusOK, "OK", rolebinding.RoleBindingList{})) + apiV1Ws.Route( + apiV1Ws.GET("/rolebinding/{namespace}/{name}").To(apiHandler.handleGetRoleBindingDetail). + // docs + Doc("returns detailed information about RoleBinding"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the RoleBinding")). + Param(apiV1Ws.PathParameter("name", "name of the RoleBinding")). + Writes(rolebinding.RoleBindingDetail{}). + Returns(http.StatusOK, "OK", rolebinding.RoleBindingDetail{})) + + // PersistentVolume + apiV1Ws.Route( + apiV1Ws.GET("/persistentvolume").To(apiHandler.handleGetPersistentVolumeList). + // docs + Doc("returns a list of PersistentVolumes from all namespaces"). + Writes(persistentvolume.PersistentVolumeList{}). + Returns(http.StatusOK, "OK", persistentvolume.PersistentVolumeList{})) + apiV1Ws.Route( + apiV1Ws.GET("/persistentvolume/{persistentvolume}").To(apiHandler.handleGetPersistentVolumeDetail). + // docs + Doc("returns detailed information about PersistentVolume"). + Param(apiV1Ws.PathParameter("persistentvolume", "name of the PersistentVolume")). + Writes(persistentvolume.PersistentVolumeDetail{}). + Returns(http.StatusOK, "OK", persistentvolume.PersistentVolumeDetail{})) + apiV1Ws.Route( + apiV1Ws.GET("/persistentvolume/namespace/{namespace}/name/{persistentvolume}").To(apiHandler.handleGetPersistentVolumeDetail). + // docs + Doc("returns detailed information about PersistentVolume"). + Param(apiV1Ws.PathParameter("persistentvolume", "name of the PersistentVolume")). + Writes(persistentvolume.PersistentVolumeDetail{}). + Returns(http.StatusOK, "OK", persistentvolume.PersistentVolumeDetail{})) + + // PersistentVolumeClaim apiV1Ws.Route( apiV1Ws.GET("/persistentvolumeclaim/"). To(apiHandler.handleGetPersistentVolumeClaimList). - Writes(persistentvolumeclaim.PersistentVolumeClaimList{})) + // docs + Doc("returns a list of PersistentVolumeClaim"). + Writes(persistentvolumeclaim.PersistentVolumeClaimList{}). + Returns(http.StatusOK, "OK", persistentvolumeclaim.PersistentVolumeClaimList{})) apiV1Ws.Route( apiV1Ws.GET("/persistentvolumeclaim/{namespace}"). To(apiHandler.handleGetPersistentVolumeClaimList). - Writes(persistentvolumeclaim.PersistentVolumeClaimList{})) + // docs + Doc("returns a list of PersistentVolumeClaim from specified namespace"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the PersistentVolumeClaim")). + Writes(persistentvolumeclaim.PersistentVolumeClaimList{}). + Returns(http.StatusOK, "OK", persistentvolumeclaim.PersistentVolumeClaimList{})) apiV1Ws.Route( apiV1Ws.GET("/persistentvolumeclaim/{namespace}/{name}"). To(apiHandler.handleGetPersistentVolumeClaimDetail). - Writes(persistentvolumeclaim.PersistentVolumeClaimDetail{})) + // docs + Doc("returns detailed information about PersistentVolumeClaim"). + Param(apiV1Ws.PathParameter("name", "name of the PersistentVolumeClaim")). + Param(apiV1Ws.PathParameter("namespace", "namespace of the PersistentVolumeClaim")). + Writes(persistentvolumeclaim.PersistentVolumeClaimDetail{}). + Returns(http.StatusOK, "OK", persistentvolumeclaim.PersistentVolumeClaimDetail{})) + // CRD apiV1Ws.Route( apiV1Ws.GET("/crd"). To(apiHandler.handleGetCustomResourceDefinitionList). - Writes(types.CustomResourceDefinitionList{})) - + // docs + Doc("returns a list of CustomResourceDefinition"). + Writes(types.CustomResourceDefinitionList{}). + Returns(http.StatusOK, "OK", types.CustomResourceDefinitionList{})) apiV1Ws.Route( apiV1Ws.GET("/crd/{crd}"). To(apiHandler.handleGetCustomResourceDefinitionDetail). - Writes(types.CustomResourceDefinitionDetail{})) - + // docs + Doc("returns detailed information about CustomResourceDefinition"). + Param(apiV1Ws.PathParameter("crd", "name of the CustomResourceDefinition")). + Writes(types.CustomResourceDefinitionDetail{}). + Returns(http.StatusOK, "OK", types.CustomResourceDefinitionDetail{})) apiV1Ws.Route( apiV1Ws.GET("/crd/{namespace}/{crd}/object"). To(apiHandler.handleGetCustomResourceObjectList). - Writes(types.CustomResourceObjectList{})) - + // docs + Doc("returns a list of objects of CustomResourceDefinition"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the custom resource")). + Param(apiV1Ws.PathParameter("crd", "name of the CustomResourceDefinition")). + Writes(types.CustomResourceObjectList{}). + Returns(http.StatusOK, "OK", types.CustomResourceObjectList{})) apiV1Ws.Route( apiV1Ws.GET("/crd/{namespace}/{crd}/{object}"). To(apiHandler.handleGetCustomResourceObjectDetail). - Writes(types.CustomResourceObjectDetail{})) - + // docs + Doc("returns detailed information about custom resource object"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the custom resource")). + Param(apiV1Ws.PathParameter("crd", "name of the CustomResourceDefinition")). + Param(apiV1Ws.PathParameter("object", "name of the custom resource object")). + Writes(types.CustomResourceObjectDetail{}). + Returns(http.StatusOK, "OK", types.CustomResourceObjectDetail{})) apiV1Ws.Route( apiV1Ws.GET("/crd/{namespace}/{crd}/{object}/event"). To(apiHandler.handleGetCustomResourceObjectEvents). - Writes(common.EventList{})) + // docs + Doc("returns Events for custom resource object"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the custom resource")). + Param(apiV1Ws.PathParameter("crd", "name of the CustomResourceDefinition")). + Param(apiV1Ws.PathParameter("object", "name of the custom resource object")). + Writes(common.EventList{}). + Returns(http.StatusOK, "OK", common.EventList{})) + // StorageClass apiV1Ws.Route( apiV1Ws.GET("/storageclass"). To(apiHandler.handleGetStorageClassList). - Writes(storageclass.StorageClassList{})) + // docs + Doc("returns a list of StorageClasses"). + Writes(storageclass.StorageClassList{}). + Returns(http.StatusOK, "OK", storageclass.StorageClassList{})) apiV1Ws.Route( apiV1Ws.GET("/storageclass/{storageclass}"). + // docs + Doc("returns detailed information about StorageClass"). + Param(apiV1Ws.PathParameter("storageclass", "name of the StorageClass")). To(apiHandler.handleGetStorageClass). - Writes(storageclass.StorageClass{})) - + Writes(storageclass.StorageClass{}). + Returns(http.StatusOK, "OK", storageclass.StorageClass{})) apiV1Ws.Route( apiV1Ws.GET("/storageclass/{storageclass}/persistentvolume"). To(apiHandler.handleGetStorageClassPersistentVolumes). - Writes(persistentvolume.PersistentVolumeList{})) + // docs + Doc("returns a list of PersistentVolumes assigned to StorageClass"). + Param(apiV1Ws.PathParameter("storageclass", "name of the StorageClass")). + Writes(persistentvolume.PersistentVolumeList{}). + Returns(http.StatusOK, "OK", persistentvolume.PersistentVolumeList{})) + // IngressClass apiV1Ws.Route( apiV1Ws.GET("/ingressclass"). To(apiHandler.handleGetIngressClassList). - Writes(ingressclass.IngressClassList{})) + // docs + Doc("returns a list of IngressClasses"). + Writes(ingressclass.IngressClassList{}). + Returns(http.StatusOK, "OK", ingressclass.IngressClassList{})) apiV1Ws.Route( apiV1Ws.GET("/ingressclass/{ingressclass}"). To(apiHandler.handleGetIngressClass). - Writes(ingressclass.IngressClass{})) + // docs + Doc("returns detailed information about IngressClass"). + Param(apiV1Ws.PathParameter("ingressclass", "name of the IngressClass")). + Writes(ingressclass.IngressClass{}). + Returns(http.StatusOK, "OK", ingressclass.IngressClass{})) + // Logs apiV1Ws.Route( apiV1Ws.GET("/log/source/{namespace}/{resourceName}/{resourceType}"). To(apiHandler.handleLogSource). - Writes(controller.LogSources{})) + // docs + Doc("returns log sources for a resource"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the resource")). + Param(apiV1Ws.PathParameter("resourceName", "name of the resource")). + Param(apiV1Ws.PathParameter("resourceType", "type of the resource")). + Writes(controller.LogSources{}). + Returns(http.StatusOK, "OK", controller.LogSources{})) apiV1Ws.Route( apiV1Ws.GET("/log/{namespace}/{pod}"). To(apiHandler.handleLogs). - Writes(logs.LogDetails{})) + // docs + Doc("returns logs from a Pod"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Pod")). + Param(apiV1Ws.PathParameter("pod", "name of the Pod")). + Writes(logs.LogDetails{}). + Returns(http.StatusOK, "OK", logs.LogDetails{})) apiV1Ws.Route( apiV1Ws.GET("/log/{namespace}/{pod}/{container}"). To(apiHandler.handleLogs). - Writes(logs.LogDetails{})) - + // docs + Doc("returns logs from a Container"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Pod")). + Param(apiV1Ws.PathParameter("pod", "name of the Pod")). + Param(apiV1Ws.PathParameter("container", "name of container in the Pod")). + Writes(logs.LogDetails{}). + Returns(http.StatusOK, "OK", logs.LogDetails{})) apiV1Ws.Route( apiV1Ws.GET("/log/file/{namespace}/{pod}/{container}"). To(apiHandler.handleLogFile). - Writes(logs.LogDetails{})) + // docs + Doc("returns a text file with logs from a Container"). + Param(apiV1Ws.PathParameter("namespace", "namespace of the Pod")). + Param(apiV1Ws.PathParameter("pod", "name of the Pod")). + Param(apiV1Ws.PathParameter("container", "name of container in the Pod")). + Writes([]byte{}). + Returns(http.StatusOK, "OK", []byte{})) return wsContainer, nil } @@ -1829,24 +2339,6 @@ func (apiHandler *APIHandler) handleDeleteResource( return } - // TODO: Try to unpin resource if it was pinned. - //pinnedResource := &settingsApi.PinnedResource{ - // Name: name, - // Kind: kind, - // Namespace: namespace, - //} - // - //k8sClient, err := client.Client(request.Request) - //if err != nil { - // errors.HandleInternalError(response, err) - // return - //} - //if err = apiHandler.sManager.DeletePinnedResource(k8sClient, pinnedResource); err != nil { - // if !errors.IsNotFound(err) { - // log.Printf("error while unpinning resource: %s", err.Error()) - // } - //} - response.WriteHeader(http.StatusOK) } diff --git a/modules/api/schema/swagger.json b/modules/api/schema/swagger.json new file mode 100644 index 000000000000..3024eb2eef8f --- /dev/null +++ b/modules/api/schema/swagger.json @@ -0,0 +1,16544 @@ +{ + "swagger": "2.0", + "info": { + "title": "Kubernetes Dashboard API", + "version": "0.0.0-dev" + }, + "paths": { + "/api/v1/_raw/{kind}/name/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a non-namespaced resource", + "operationId": "handleGetResource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/unstructured.Unstructured" + } + } + } + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "creates a non-namespaced resource", + "operationId": "handlePutResource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/runtime.Unknown" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/runtime.Unknown" + } + } + } + }, + "delete": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "deletes a non-namespaced resource", + "operationId": "handleDeleteResource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/_raw/{kind}/namespace/{namespace}/name/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns unstructured resource from a namespace", + "operationId": "handleGetResource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "namespace of the resource", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/unstructured.Unstructured" + } + } + } + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "creates a resource in a namespace", + "operationId": "handlePutResource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "namespace of the resource", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/runtime.Unknown" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/runtime.Unknown" + } + } + } + }, + "delete": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "deletes a resource from a namespace", + "operationId": "handleDeleteResource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "namespace of the resource", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/appdeployment": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "creates an application based on provided deployment.AppDeploymentSpec", + "operationId": "handleDeploy", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/deployment.AppDeploymentSpec" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.AppDeploymentSpec" + } + } + } + } + }, + "/api/v1/appdeployment/protocols": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of available protocols for the service", + "operationId": "handleGetAvailableProtocols", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.Protocols" + } + } + } + } + }, + "/api/v1/appdeployment/validate/imagereference": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "checks if provided image is valid", + "operationId": "handleImageReferenceValidity", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/validation.ImageReferenceValiditySpec" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/validation.ImageReferenceValidity" + } + } + } + } + }, + "/api/v1/appdeployment/validate/name": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "checks if provided name is valid", + "operationId": "handleNameValidity", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/validation.AppNameValiditySpec" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/validation.AppNameValidity" + } + } + } + } + }, + "/api/v1/appdeployment/validate/protocol": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "checks if provided service protocol is valid", + "operationId": "handleProtocolValidity", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/validation.ProtocolValiditySpec" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/validation.ProtocolValidity" + } + } + } + } + }, + "/api/v1/appdeploymentfromfile": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "create an application from file", + "operationId": "handleDeployFromFile", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/deployment.AppDeploymentFromFileSpec" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.AppDeploymentFromFileResponse" + } + } + } + } + }, + "/api/v1/clusterrole": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ClusterRoles", + "operationId": "handleGetClusterRoleList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/clusterrole.ClusterRoleList" + } + } + } + } + }, + "/api/v1/clusterrole/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about ClusterRole", + "operationId": "handleGetClusterRoleDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the ClusterRole", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/clusterrole.ClusterRoleDetail" + } + } + } + } + }, + "/api/v1/clusterrolebinding": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ClusterRoleBindings", + "operationId": "handleGetClusterRoleBindingList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/clusterrolebinding.ClusterRoleBindingList" + } + } + } + } + }, + "/api/v1/clusterrolebinding/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about ClusterRoleBinding", + "operationId": "handleGetClusterRoleBindingDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the ClusterRoleBinding", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/clusterrolebinding.ClusterRoleBindingDetail" + } + } + } + } + }, + "/api/v1/configmap": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ConfigMaps from all namespaces", + "operationId": "handleGetConfigMapList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/configmap.ConfigMapList" + } + } + } + } + }, + "/api/v1/configmap/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ConfigMaps in a namespaces", + "operationId": "handleGetConfigMapList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ConfigMap", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/configmap.ConfigMapList" + } + } + } + } + }, + "/api/v1/configmap/{namespace}/{configmap}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about ConfigMap", + "operationId": "handleGetConfigMapDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ConfigMap", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ConfigMap", + "name": "configmap", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/configmap.ConfigMapDetail" + } + } + } + } + }, + "/api/v1/crd": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of CustomResourceDefinition", + "operationId": "handleGetCustomResourceDefinitionList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/types.CustomResourceDefinitionList" + } + } + } + } + }, + "/api/v1/crd/{crd}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about CustomResourceDefinition", + "operationId": "handleGetCustomResourceDefinitionDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the CustomResourceDefinition", + "name": "crd", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/types.CustomResourceDefinitionDetail" + } + } + } + } + }, + "/api/v1/crd/{namespace}/{crd}/object": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of objects of CustomResourceDefinition", + "operationId": "handleGetCustomResourceObjectList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the custom resource", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the CustomResourceDefinition", + "name": "crd", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/types.CustomResourceObjectList" + } + } + } + } + }, + "/api/v1/crd/{namespace}/{crd}/{object}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about custom resource object", + "operationId": "handleGetCustomResourceObjectDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the custom resource", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the CustomResourceDefinition", + "name": "crd", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the custom resource object", + "name": "object", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/types.CustomResourceObjectDetail" + } + } + } + } + }, + "/api/v1/crd/{namespace}/{crd}/{object}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns Events for custom resource object", + "operationId": "handleGetCustomResourceObjectEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the custom resource", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the CustomResourceDefinition", + "name": "crd", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the custom resource object", + "name": "object", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/cronjob": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of CronJobs from all namespaces", + "operationId": "handleGetCronJobList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/cronjob.CronJobList" + } + } + } + } + }, + "/api/v1/cronjob/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of CronJobs in a namespaces", + "operationId": "handleGetCronJobList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the CronJob", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/cronjob.CronJobList" + } + } + } + } + }, + "/api/v1/cronjob/{namespace}/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about CronJob", + "operationId": "handleGetCronJobDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the CronJob", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the CronJob", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/cronjob.CronJobDetail" + } + } + } + } + }, + "/api/v1/cronjob/{namespace}/{name}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for CronJob", + "operationId": "handleGetCronJobEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the CronJob", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the CronJob", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/cronjob/{namespace}/{name}/job": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Jobs for CronJob", + "operationId": "handleGetCronJobJobs", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the CronJob", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the CronJob", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/job.JobList" + } + } + } + } + }, + "/api/v1/cronjob/{namespace}/{name}/trigger": { + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "triggers a Job based on CronJob", + "operationId": "handleTriggerCronJob", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the CronJob", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the CronJob", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/csrftoken/{action}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "generates a one-time CSRF token that can be used by POST request", + "operationId": "handleGetCsrfToken", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "action name to generate CSRF token for", + "name": "action", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/csrf.Response" + } + } + } + } + }, + "/api/v1/daemonset": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of DaemonSets from all namespaces", + "operationId": "handleGetDaemonSetList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/daemonset.DaemonSetList" + } + } + } + } + }, + "/api/v1/daemonset/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of DaemonSets in a namespaces", + "operationId": "handleGetDaemonSetList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the DaemonSet", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/daemonset.DaemonSetList" + } + } + } + } + }, + "/api/v1/daemonset/{namespace}/{daemonSet}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about DaemonSet", + "operationId": "handleGetDaemonSetDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the DaemonSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the DaemonSet", + "name": "daemonSet", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/daemonset.DaemonSetDetail" + } + } + } + } + }, + "/api/v1/daemonset/{namespace}/{daemonSet}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for DaemonSet", + "operationId": "handleGetDaemonSetEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the DaemonSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the DaemonSet", + "name": "daemonSet", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/daemonset/{namespace}/{daemonSet}/pod": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Pods for DaemonSet", + "operationId": "handleGetDaemonSetPods", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the DaemonSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the DaemonSet", + "name": "daemonSet", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/daemonset/{namespace}/{daemonSet}/service": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Services for DaemonSet", + "operationId": "handleGetDaemonSetServices", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the DaemonSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the DaemonSet", + "name": "daemonSet", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/service.ServiceList" + } + } + } + } + }, + "/api/v1/deployment": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Deployments from all namespaces", + "operationId": "handleGetDeployments", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.DeploymentList" + } + } + } + } + }, + "/api/v1/deployment/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Deployments in a namespaces", + "operationId": "handleGetDeployments", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Deployment", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.DeploymentList" + } + } + } + } + }, + "/api/v1/deployment/{namespace}/{deployment}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about Deployment", + "operationId": "handleGetDeploymentDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Deployment", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Deployment", + "name": "deployment", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.DeploymentDetail" + } + } + } + } + }, + "/api/v1/deployment/{namespace}/{deployment}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for Deployment", + "operationId": "handleGetDeploymentEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Deployment", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Deployment", + "name": "deployment", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/deployment/{namespace}/{deployment}/newreplicaset": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of new ReplicaSets for Deployment", + "operationId": "handleGetDeploymentNewReplicaSet", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Deployment", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Deployment", + "name": "deployment", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/replicaset.ReplicaSet" + } + } + } + } + }, + "/api/v1/deployment/{namespace}/{deployment}/oldreplicaset": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of old ReplicaSets for Deployment", + "operationId": "handleGetDeploymentOldReplicaSets", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Deployment", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Deployment", + "name": "deployment", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/replicaset.ReplicaSetList" + } + } + } + } + }, + "/api/v1/deployment/{namespace}/{deployment}/pause": { + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "pauses the Deployment", + "operationId": "handleDeploymentPause", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Deployment", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Deployment", + "name": "deployment", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.DeploymentDetail" + } + } + } + } + }, + "/api/v1/deployment/{namespace}/{deployment}/restart": { + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "rollout restart of the Deployment", + "operationId": "handleDeploymentRestart", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Deployment", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Deployment", + "name": "deployment", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.RolloutSpec" + } + } + } + } + }, + "/api/v1/deployment/{namespace}/{deployment}/resume": { + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "resumes the Deployment", + "operationId": "handleDeploymentResume", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Deployment", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Deployment", + "name": "deployment", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.DeploymentDetail" + } + } + } + } + }, + "/api/v1/deployment/{namespace}/{deployment}/rollback": { + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "rolls back the Deployment to the target revision", + "operationId": "handleDeploymentRollback", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Deployment", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Deployment", + "name": "deployment", + "in": "path", + "required": true + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/deployment.RolloutSpec" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/deployment.RolloutSpec" + } + } + } + } + }, + "/api/v1/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events from all namespaces", + "operationId": "handleGetEventList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/event/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events in a namespace", + "operationId": "handleGetEventList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace to get Events from", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/horizontalpodautoscaler": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of HorizontalPodAutoscalers from all namespaces", + "operationId": "handleGetHorizontalPodAutoscalerList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/horizontalpodautoscaler.HorizontalPodAutoscalerList" + } + } + } + } + }, + "/api/v1/horizontalpodautoscaler/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of HorizontalPodAutoscalers in a namespaces", + "operationId": "handleGetHorizontalPodAutoscalerList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the HorizontalPodAutoscaler", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/horizontalpodautoscaler.HorizontalPodAutoscalerList" + } + } + } + } + }, + "/api/v1/horizontalpodautoscaler/{namespace}/{horizontalpodautoscaler}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about HorizontalPodAutoscaler", + "operationId": "handleGetHorizontalPodAutoscalerDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the HorizontalPodAutoscaler", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the HorizontalPodAutoscaler", + "name": "horizontalpodautoscaler", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/horizontalpodautoscaler.HorizontalPodAutoscalerDetail" + } + } + } + } + }, + "/api/v1/ingress": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Ingresses from all namespaces", + "operationId": "handleGetIngressList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ingress.IngressList" + } + } + } + } + }, + "/api/v1/ingress/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Ingresses in a namespaces", + "operationId": "handleGetIngressList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Ingress", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ingress.IngressList" + } + } + } + } + }, + "/api/v1/ingress/{namespace}/{ingress}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for Ingress", + "operationId": "handleGetIngressEvent", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Ingress", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Ingress", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/ingress/{namespace}/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about Ingress", + "operationId": "handleGetIngressDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Ingress", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Ingress", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ingress.IngressDetail" + } + } + } + } + }, + "/api/v1/ingressclass": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of IngressClasses", + "operationId": "handleGetIngressClassList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ingressclass.IngressClassList" + } + } + } + } + }, + "/api/v1/ingressclass/{ingressclass}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about IngressClass", + "operationId": "handleGetIngressClass", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the IngressClass", + "name": "ingressclass", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ingressclass.IngressClass" + } + } + } + } + }, + "/api/v1/integration/{name}/state": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "operationId": "handleGetState", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/job": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Jobs from all namespaces", + "operationId": "handleGetJobList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/job.JobList" + } + } + } + } + }, + "/api/v1/job/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Jobs in a namespaces", + "operationId": "handleGetJobList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Job", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/job.JobList" + } + } + } + } + }, + "/api/v1/job/{namespace}/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about Job", + "operationId": "handleGetJobDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Job", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Job", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/job.JobDetail" + } + } + } + } + }, + "/api/v1/job/{namespace}/{name}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for Job", + "operationId": "handleGetJobEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Job", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Job", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/job/{namespace}/{name}/pod": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Pods for Job", + "operationId": "handleGetJobPods", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Job", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Job", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/log/file/{namespace}/{pod}/{container}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a text file with logs from a Container", + "operationId": "handleLogFile", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Pod", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Pod", + "name": "pod", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of container in the Pod", + "name": "container", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "integer" + } + } + } + } + } + }, + "/api/v1/log/source/{namespace}/{resourceName}/{resourceType}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns log sources for a resource", + "operationId": "handleLogSource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the resource", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "resourceName", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "type of the resource", + "name": "resourceType", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/controller.LogSources" + } + } + } + } + }, + "/api/v1/log/{namespace}/{pod}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns logs from a Pod", + "operationId": "handleLogs", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Pod", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Pod", + "name": "pod", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/logs.LogDetails" + } + } + } + } + }, + "/api/v1/log/{namespace}/{pod}/{container}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns logs from a Container", + "operationId": "handleLogs", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Pod", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Pod", + "name": "pod", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of container in the Pod", + "name": "container", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/logs.LogDetails" + } + } + } + } + }, + "/api/v1/namespace": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Namespaces", + "operationId": "handleGetNamespaces", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/namespace.NamespaceList" + } + } + } + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "create a Namespace", + "operationId": "handleCreateNamespace", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/namespace.NamespaceSpec" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/namespace.NamespaceSpec" + } + } + } + } + }, + "/api/v1/namespace/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about Namespace", + "operationId": "handleGetNamespaceDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the Namespace", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/namespace.NamespaceDetail" + } + } + } + } + }, + "/api/v1/namespace/{name}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for Namespace", + "operationId": "handleGetNamespaceEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the Namespace", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/networkpolicy": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of NetworkPolicies from all namespaces", + "operationId": "handleGetNetworkPolicyList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/networkpolicy.NetworkPolicyList" + } + } + } + } + }, + "/api/v1/networkpolicy/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of NetworkPolicies in a namespaces", + "operationId": "handleGetNetworkPolicyList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the NetworkPolicy", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/networkpolicy.NetworkPolicyList" + } + } + } + } + }, + "/api/v1/networkpolicy/{namespace}/{networkpolicy}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about NetworkPolicy", + "operationId": "handleGetNetworkPolicyDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the NetworkPolicy", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the NetworkPolicy", + "name": "networkpolicy", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/networkpolicy.NetworkPolicyDetail" + } + } + } + } + }, + "/api/v1/node": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Nodes", + "operationId": "handleGetNodeList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/node.NodeList" + } + } + } + } + }, + "/api/v1/node/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about Node", + "operationId": "handleGetNodeDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the Node", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/node.NodeDetail" + } + } + } + } + }, + "/api/v1/node/{name}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for Node", + "operationId": "handleGetNodeEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the Node", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/node/{name}/pod": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Pods for Node", + "operationId": "handleGetNodePods", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the Node", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/persistentvolume": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of PersistentVolumes from all namespaces", + "operationId": "handleGetPersistentVolumeList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/persistentvolume.PersistentVolumeList" + } + } + } + } + }, + "/api/v1/persistentvolume/namespace/{namespace}/name/{persistentvolume}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about PersistentVolume", + "operationId": "handleGetPersistentVolumeDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the PersistentVolume", + "name": "persistentvolume", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/persistentvolume.PersistentVolumeDetail" + } + } + } + } + }, + "/api/v1/persistentvolume/{persistentvolume}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about PersistentVolume", + "operationId": "handleGetPersistentVolumeDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the PersistentVolume", + "name": "persistentvolume", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/persistentvolume.PersistentVolumeDetail" + } + } + } + } + }, + "/api/v1/persistentvolumeclaim": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of PersistentVolumeClaim", + "operationId": "handleGetPersistentVolumeClaimList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/persistentvolumeclaim.PersistentVolumeClaimList" + } + } + } + } + }, + "/api/v1/persistentvolumeclaim/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of PersistentVolumeClaim from specified namespace", + "operationId": "handleGetPersistentVolumeClaimList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the PersistentVolumeClaim", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/persistentvolumeclaim.PersistentVolumeClaimList" + } + } + } + } + }, + "/api/v1/persistentvolumeclaim/{namespace}/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about PersistentVolumeClaim", + "operationId": "handleGetPersistentVolumeClaimDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the PersistentVolumeClaim", + "name": "name", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "namespace of the PersistentVolumeClaim", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/persistentvolumeclaim.PersistentVolumeClaimDetail" + } + } + } + } + }, + "/api/v1/pod": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Pods from all namespaces", + "operationId": "handleGetPods", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/pod/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Pods in a namespaces", + "operationId": "handleGetPods", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Pod", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/pod/{namespace}/{pod}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about Pod", + "operationId": "handleGetPodDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Pod", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Pod", + "name": "pod", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodDetail" + } + } + } + } + }, + "/api/v1/pod/{namespace}/{pod}/container": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of containers for Pod", + "operationId": "handleGetPodContainers", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Pod", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Pod", + "name": "pod", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodDetail" + } + } + } + } + }, + "/api/v1/pod/{namespace}/{pod}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for Pod", + "operationId": "handleGetPodEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Pod", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Pod", + "name": "pod", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/pod/{namespace}/{pod}/persistentvolumeclaim": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of containers for Pod", + "operationId": "handleGetPodPersistentVolumeClaims", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Pod", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Pod", + "name": "pod", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/persistentvolumeclaim.PersistentVolumeClaimList" + } + } + } + } + }, + "/api/v1/pod/{namespace}/{pod}/shell/{container}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "handles exec into pod", + "operationId": "handleExecShell", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Pod", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Pod", + "name": "pod", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of container in the Pod", + "name": "container", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/handler.TerminalResponse" + } + } + } + } + }, + "/api/v1/replicaset": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ReplicaSets from all namespaces", + "operationId": "handleGetReplicaSets", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/replicaset.ReplicaSetList" + } + } + } + } + }, + "/api/v1/replicaset/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ReplicaSets in a namespace", + "operationId": "handleGetReplicaSets", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicaSets", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/replicaset.ReplicaSetList" + } + } + } + } + }, + "/api/v1/replicaset/{namespace}/{replicaSet}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about ReplicaSet", + "operationId": "handleGetReplicaSetDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicaSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ReplicaSets", + "name": "replicaSet", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/replicaset.ReplicaSetDetail" + } + } + } + } + }, + "/api/v1/replicaset/{namespace}/{replicaSet}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for ReplicaSet", + "operationId": "handleGetReplicaSetEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicaSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ReplicaSets", + "name": "replicaSet", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/replicaset/{namespace}/{replicaSet}/pod": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Pods for ReplicaSet", + "operationId": "handleGetReplicaSetPods", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicaSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ReplicaSets", + "name": "replicaSet", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/replicaset/{namespace}/{replicaSet}/service": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Services for ReplicaSet", + "operationId": "handleGetReplicaSetServices", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicaSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ReplicaSets", + "name": "replicaSet", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/replicationcontroller": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ReplicationControllers from all namespaces", + "operationId": "handleGetReplicationControllerList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/replicationcontroller.ReplicationControllerList" + } + } + } + } + }, + "/api/v1/replicationcontroller/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ReplicationController in a namespace", + "operationId": "handleGetReplicationControllerList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace to get a list of ReplicationController from", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/replicationcontroller.ReplicationControllerList" + } + } + } + } + }, + "/api/v1/replicationcontroller/{namespace}/{replicationController}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about ReplicationController", + "operationId": "handleGetReplicationControllerDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicationController", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ReplicationController", + "name": "replicationController", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/replicationcontroller.ReplicationControllerDetail" + } + } + } + } + }, + "/api/v1/replicationcontroller/{namespace}/{replicationController}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for ReplicationController", + "operationId": "handleGetReplicationControllerEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicationController", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ReplicationController", + "name": "replicationController", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/replicationcontroller/{namespace}/{replicationController}/pod": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Pods for ReplicationController", + "operationId": "handleGetReplicationControllerPods", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicationController", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ReplicationController", + "name": "replicationController", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/replicationcontroller/{namespace}/{replicationController}/service": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Services for ReplicationController", + "operationId": "handleGetReplicationControllerServices", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicationController", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ReplicationController", + "name": "replicationController", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/service.ServiceList" + } + } + } + } + }, + "/api/v1/replicationcontroller/{namespace}/{replicationController}/update/pod": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "scales ReplicationController to a number of replicas", + "operationId": "handleUpdateReplicasCount", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ReplicationController", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ReplicationController", + "name": "replicationController", + "in": "path", + "required": true + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/replicationcontroller.ReplicationControllerSpec" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/role/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Roles in a namespace", + "operationId": "handleGetRoleList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Role", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/role.RoleList" + } + } + } + } + }, + "/api/v1/role/{namespace}/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about Role", + "operationId": "handleGetRoleDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Role", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Role", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/role.RoleDetail" + } + } + } + } + }, + "/api/v1/rolebinding/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of RoleBindings in a namespace", + "operationId": "handleGetRoleBindingList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the RoleBinding", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/rolebinding.RoleBindingList" + } + } + } + } + }, + "/api/v1/rolebinding/{namespace}/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about RoleBinding", + "operationId": "handleGetRoleBindingDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the RoleBinding", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the RoleBinding", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/rolebinding.RoleBindingDetail" + } + } + } + } + }, + "/api/v1/scale/{kind}/{namespace}/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a number of replicas of namespaced resource", + "operationId": "handleGetReplicaCount", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "namespace of the resource", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/scaling.ReplicaCounts" + } + } + } + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "scales a namespaced resource", + "operationId": "handleScaleResource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "namespace of the resource", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/scaling.ReplicaCounts" + } + } + } + } + }, + "/api/v1/scale/{kind}/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a number of replicas of non-namespaced resource", + "operationId": "handleGetReplicaCount", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/scaling.ReplicaCounts" + } + } + } + }, + "put": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "scales a non-namespaced resource", + "operationId": "handleScaleResource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/scaling.ReplicaCounts" + } + } + } + } + }, + "/api/v1/secret": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Secrets from all namespaces", + "operationId": "handleGetSecretList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/secret.SecretList" + } + } + } + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "stores ImagePullSecret in a Kubernetes Secret", + "operationId": "handleCreateImagePullSecret", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/secret.ImagePullSecretSpec" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/secret.Secret" + } + } + } + } + }, + "/api/v1/secret/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Secrets in a namespace", + "operationId": "handleGetSecretList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Secret", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/secret.SecretList" + } + } + } + } + }, + "/api/v1/secret/{namespace}/{name}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about Secret", + "operationId": "handleGetSecretDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Secret", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Secret", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/secret.SecretDetail" + } + } + } + } + }, + "/api/v1/service": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Services from all namespaces", + "operationId": "handleGetServiceList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/service.ServiceList" + } + } + } + } + }, + "/api/v1/service/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Services in a namespace", + "operationId": "handleGetServiceList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Service", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/service.ServiceList" + } + } + } + } + }, + "/api/v1/service/{namespace}/{service}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about Service", + "operationId": "handleGetServiceDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Service", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Service", + "name": "service", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/service.ServiceDetail" + } + } + } + } + }, + "/api/v1/service/{namespace}/{service}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for Service", + "operationId": "handleGetServiceEvent", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Service", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Service", + "name": "service", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/service/{namespace}/{service}/ingress": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Ingresses for Service", + "operationId": "handleGetServiceIngressList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Service", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Service", + "name": "service", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ingress.IngressList" + } + } + } + } + }, + "/api/v1/service/{namespace}/{service}/pod": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Pods for Service", + "operationId": "handleGetServicePods", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the Service", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the Service", + "name": "service", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/serviceaccount": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ServiceAccounts from all namespaces", + "operationId": "handleGetServiceAccountList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/serviceaccount.ServiceAccountList" + } + } + } + } + }, + "/api/v1/serviceaccount/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ServiceAccounts in a namespaces", + "operationId": "handleGetServiceAccountList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ServiceAccount", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/serviceaccount.ServiceAccountList" + } + } + } + } + }, + "/api/v1/serviceaccount/{namespace}/{serviceaccount}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about ServiceAccount", + "operationId": "handleGetServiceAccountDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ServiceAccount", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ServiceAccount", + "name": "serviceaccount", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/serviceaccount.ServiceAccountDetail" + } + } + } + } + }, + "/api/v1/serviceaccount/{namespace}/{serviceaccount}/imagepullsecret": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of ImagePullSecret Secrets for ServiceAccount", + "operationId": "handleGetServiceAccountImagePullSecrets", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ServiceAccount", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ServiceAccount", + "name": "serviceaccount", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/secret.SecretList" + } + } + } + } + }, + "/api/v1/serviceaccount/{namespace}/{serviceaccount}/secret": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Secrets for ServiceAccount", + "operationId": "handleGetServiceAccountSecrets", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the ServiceAccount", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the ServiceAccount", + "name": "serviceaccount", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/secret.SecretList" + } + } + } + } + }, + "/api/v1/statefulset": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of StatefulSets from all namespaces", + "operationId": "handleGetStatefulSetList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/statefulset.StatefulSetList" + } + } + } + } + }, + "/api/v1/statefulset/{namespace}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of StatefulSets in a namespaces", + "operationId": "handleGetStatefulSetList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the StatefulSet", + "name": "namespace", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/statefulset.StatefulSetList" + } + } + } + } + }, + "/api/v1/statefulset/{namespace}/{statefulset}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about StatefulSets", + "operationId": "handleGetStatefulSetDetail", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the StatefulSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the StatefulSet", + "name": "statefulset", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/statefulset.StatefulSetDetail" + } + } + } + } + }, + "/api/v1/statefulset/{namespace}/{statefulset}/event": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Events for StatefulSets", + "operationId": "handleGetStatefulSetEvents", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the StatefulSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the StatefulSet", + "name": "statefulset", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/common.EventList" + } + } + } + } + }, + "/api/v1/statefulset/{namespace}/{statefulset}/pod": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of Pods for StatefulSets", + "operationId": "handleGetStatefulSetPods", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "namespace of the StatefulSet", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the StatefulSet", + "name": "statefulset", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/pod.PodList" + } + } + } + } + }, + "/api/v1/storageclass": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of StorageClasses", + "operationId": "handleGetStorageClassList", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/storageclass.StorageClassList" + } + } + } + } + }, + "/api/v1/storageclass/{storageclass}": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns detailed information about StorageClass", + "operationId": "handleGetStorageClass", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the StorageClass", + "name": "storageclass", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/storageclass.StorageClass" + } + } + } + } + }, + "/api/v1/storageclass/{storageclass}/persistentvolume": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of PersistentVolumes assigned to StorageClass", + "operationId": "handleGetStorageClassPersistentVolumes", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "name of the StorageClass", + "name": "storageclass", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/persistentvolume.PersistentVolumeList" + } + } + } + } + }, + "/api/v1/{kind}/{namespace}/{name}/horizontalpodautoscaler": { + "get": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "returns a list of HorizontalPodAutoscalers for resource", + "operationId": "handleGetHorizontalPodAutoscalerListForResource", + "parameters": [ + { + "type": "string", + "description": "Comma delimited string used to apply filtering: 'propertyName,filterValue'", + "name": "filterBy", + "in": "query" + }, + { + "type": "string", + "description": "Name of the column to sort by", + "name": "sortBy", + "in": "query" + }, + { + "type": "string", + "description": "Number of items to return when pagination is applied", + "name": "itemsPerPage", + "in": "query" + }, + { + "type": "string", + "description": "Page number to return items from", + "name": "page", + "in": "query" + }, + { + "type": "string", + "description": "Metric names to download", + "name": "metricNames", + "in": "query" + }, + { + "type": "string", + "description": "Aggregations to be performed for each metric (default: sum)", + "name": "aggregations", + "in": "query" + }, + { + "type": "string", + "description": "kind of the resource to get HorizontalPodAutoscalers for", + "name": "kind", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "namespace of the resource to get HorizontalPodAutoscalers for", + "name": "namespace", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the resource to get HorizontalPodAutoscalers for", + "name": "name", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/horizontalpodautoscaler.HorizontalPodAutoscalerList" + } + } + } + } + } + }, + "definitions": { + "api.DataPoint": { + "required": [ + "x", + "y" + ], + "properties": { + "x": { + "type": "integer", + "format": "int64" + }, + "y": { + "type": "integer", + "format": "int64" + } + } + }, + "api.IntegrationState": { + "required": [ + "connected", + "lastChecked", + "error" + ], + "properties": { + "connected": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/error" + }, + "lastChecked": { + "type": "string" + } + } + }, + "api.Metric": { + "required": [ + "dataPoints", + "metricPoints", + "metricName" + ], + "properties": { + "aggregation": { + "type": "string" + }, + "dataPoints": { + "type": "array", + "items": { + "$ref": "#/definitions/api.DataPoint" + } + }, + "metricName": { + "type": "string" + }, + "metricPoints": { + "type": "array", + "items": { + "$ref": "#/definitions/api.MetricPoint" + } + } + } + }, + "api.MetricPoint": { + "required": [ + "timestamp", + "value" + ], + "properties": { + "timestamp": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "integer", + "format": "integer" + } + } + }, + "big.Int": { + "required": [ + "neg", + "abs" + ], + "properties": { + "abs": { + "type": "array", + "items": { + "type": "integer", + "format": "integer" + } + }, + "neg": { + "type": "boolean" + } + } + }, + "clusterrole.ClusterRole": { + "required": [ + "objectMeta", + "typeMeta" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "clusterrole.ClusterRoleDetail": { + "required": [ + "objectMeta", + "typeMeta", + "rules", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "rules": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.PolicyRule" + } + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "clusterrole.ClusterRoleList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/clusterrole.ClusterRole" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "clusterrolebinding.ClusterRoleBinding": { + "required": [ + "objectMeta", + "typeMeta" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "clusterrolebinding.ClusterRoleBindingDetail": { + "required": [ + "objectMeta", + "typeMeta", + "roleRef", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "roleRef": { + "$ref": "#/definitions/v1.RoleRef" + }, + "subjects": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.Subject" + } + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "clusterrolebinding.ClusterRoleBindingList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/clusterrolebinding.ClusterRoleBinding" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "common.Condition": { + "required": [ + "type", + "status", + "lastProbeTime", + "lastTransitionTime", + "reason", + "message" + ], + "properties": { + "lastProbeTime": { + "type": "string" + }, + "lastTransitionTime": { + "type": "string" + }, + "message": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "common.Endpoint": { + "required": [ + "host", + "ports" + ], + "properties": { + "host": { + "type": "string" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/common.ServicePort" + } + } + } + }, + "common.Event": { + "required": [ + "objectMeta", + "typeMeta", + "message", + "sourceComponent", + "sourceHost", + "object", + "count", + "firstSeen", + "lastSeen", + "reason", + "type" + ], + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "firstSeen": { + "type": "string" + }, + "lastSeen": { + "type": "string" + }, + "message": { + "type": "string" + }, + "object": { + "type": "string" + }, + "objectKind": { + "type": "string" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "objectName": { + "type": "string" + }, + "objectNamespace": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "sourceComponent": { + "type": "string" + }, + "sourceHost": { + "type": "string" + }, + "type": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "common.EventList": { + "required": [ + "listMeta", + "events", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "events": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Event" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "common.PodInfo": { + "required": [ + "current", + "running", + "pending", + "failed", + "succeeded", + "warnings" + ], + "properties": { + "current": { + "type": "integer", + "format": "int32" + }, + "desired": { + "type": "integer", + "format": "int32" + }, + "failed": { + "type": "integer", + "format": "int32" + }, + "pending": { + "type": "integer", + "format": "int32" + }, + "running": { + "type": "integer", + "format": "int32" + }, + "succeeded": { + "type": "integer", + "format": "int32" + }, + "warnings": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Event" + } + } + } + }, + "common.ResourceStatus": { + "required": [ + "running", + "pending", + "failed", + "succeeded", + "terminating" + ], + "properties": { + "failed": { + "type": "integer", + "format": "int32" + }, + "pending": { + "type": "integer", + "format": "int32" + }, + "running": { + "type": "integer", + "format": "int32" + }, + "succeeded": { + "type": "integer", + "format": "int32" + }, + "terminating": { + "type": "integer", + "format": "int32" + } + } + }, + "common.ServicePort": { + "required": [ + "port", + "protocol", + "nodePort" + ], + "properties": { + "nodePort": { + "type": "integer", + "format": "int32" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "protocol": { + "type": "string" + } + } + }, + "configmap.ConfigMap": { + "required": [ + "objectMeta", + "typeMeta" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "configmap.ConfigMapDetail": { + "required": [ + "objectMeta", + "typeMeta" + ], + "properties": { + "data": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "configmap.ConfigMapList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/configmap.ConfigMap" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "controller.LogSources": { + "required": [ + "containerNames", + "initContainerNames", + "podNames" + ], + "properties": { + "containerNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "initContainerNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "podNames": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "controller.ResourceOwner": { + "required": [ + "objectMeta", + "typeMeta", + "pods", + "containerImages", + "initContainerImages" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "pods": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "cronjob.CronJob": { + "required": [ + "objectMeta", + "typeMeta", + "schedule", + "suspend", + "active", + "lastSchedule", + "containerImages" + ], + "properties": { + "active": { + "type": "integer", + "format": "int32" + }, + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "lastSchedule": { + "type": "string" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "schedule": { + "type": "string" + }, + "suspend": { + "type": "boolean" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "cronjob.CronJobDetail": { + "required": [ + "containerImages", + "objectMeta", + "typeMeta", + "schedule", + "suspend", + "active", + "lastSchedule", + "concurrencyPolicy", + "startingDeadlineSeconds", + "errors" + ], + "properties": { + "active": { + "type": "integer", + "format": "int32" + }, + "concurrencyPolicy": { + "type": "string" + }, + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "lastSchedule": { + "type": "string" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "schedule": { + "type": "string" + }, + "startingDeadlineSeconds": { + "type": "integer", + "format": "int64" + }, + "suspend": { + "type": "boolean" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "cronjob.CronJobList": { + "required": [ + "listMeta", + "cumulativeMetrics", + "items", + "status", + "errors" + ], + "properties": { + "cumulativeMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/cronjob.CronJob" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "status": { + "$ref": "#/definitions/common.ResourceStatus" + } + } + }, + "csrf.Response": { + "required": [ + "token" + ], + "properties": { + "token": { + "type": "string" + } + } + }, + "daemonset.DaemonSet": { + "required": [ + "objectMeta", + "typeMeta", + "podInfo", + "containerImages", + "initContainerImages" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "daemonset.DaemonSetDetail": { + "required": [ + "typeMeta", + "podInfo", + "containerImages", + "initContainerImages", + "objectMeta", + "errors" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelSelector": { + "$ref": "#/definitions/v1.LabelSelector" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "daemonset.DaemonSetList": { + "required": [ + "listMeta", + "daemonSets", + "cumulativeMetrics", + "status", + "errors" + ], + "properties": { + "cumulativeMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "daemonSets": { + "type": "array", + "items": { + "$ref": "#/definitions/daemonset.DaemonSet" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "status": { + "$ref": "#/definitions/common.ResourceStatus" + } + } + }, + "deployment.AppDeploymentFromFileResponse": { + "required": [ + "name", + "content", + "error" + ], + "properties": { + "content": { + "type": "string" + }, + "error": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "deployment.AppDeploymentFromFileSpec": { + "required": [ + "name", + "namespace", + "content", + "validate" + ], + "properties": { + "content": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "validate": { + "type": "boolean" + } + } + }, + "deployment.AppDeploymentSpec": { + "required": [ + "name", + "containerImage", + "imagePullSecret", + "containerCommand", + "containerCommandArgs", + "replicas", + "portMappings", + "variables", + "isExternal", + "description", + "namespace", + "memoryRequirement", + "cpuRequirement", + "labels", + "runAsPrivileged" + ], + "properties": { + "containerCommand": { + "type": "string" + }, + "containerCommandArgs": { + "type": "string" + }, + "containerImage": { + "type": "string" + }, + "cpuRequirement": { + "type": "string" + }, + "description": { + "type": "string" + }, + "imagePullSecret": { + "type": "string" + }, + "isExternal": { + "type": "boolean" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/definitions/deployment.Label" + } + }, + "memoryRequirement": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "portMappings": { + "type": "array", + "items": { + "$ref": "#/definitions/deployment.PortMapping" + } + }, + "replicas": { + "type": "integer", + "format": "int32" + }, + "runAsPrivileged": { + "type": "boolean" + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/definitions/deployment.EnvironmentVariable" + } + } + } + }, + "deployment.Deployment": { + "required": [ + "objectMeta", + "typeMeta", + "pods", + "containerImages", + "initContainerImages" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "pods": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "deployment.DeploymentDetail": { + "required": [ + "initContainerImages", + "objectMeta", + "typeMeta", + "pods", + "containerImages", + "selector", + "statusInfo", + "conditions", + "strategy", + "minReadySeconds", + "revisionHistoryLimit", + "errors" + ], + "properties": { + "conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Condition" + } + }, + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "minReadySeconds": { + "type": "integer", + "format": "int32" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "pods": { + "$ref": "#/definitions/common.PodInfo" + }, + "revisionHistoryLimit": { + "type": "integer", + "format": "int32" + }, + "rollingUpdateStrategy": { + "$ref": "#/definitions/deployment.RollingUpdateStrategy" + }, + "selector": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "statusInfo": { + "$ref": "#/definitions/deployment.StatusInfo" + }, + "strategy": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "deployment.DeploymentList": { + "required": [ + "listMeta", + "cumulativeMetrics", + "status", + "deployments", + "errors" + ], + "properties": { + "cumulativeMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "deployments": { + "type": "array", + "items": { + "$ref": "#/definitions/deployment.Deployment" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "status": { + "$ref": "#/definitions/common.ResourceStatus" + } + } + }, + "deployment.EnvironmentVariable": { + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "deployment.Label": { + "required": [ + "key", + "value" + ], + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "deployment.PortMapping": { + "required": [ + "port", + "targetPort", + "protocol" + ], + "properties": { + "port": { + "type": "integer", + "format": "int32" + }, + "protocol": { + "type": "string" + }, + "targetPort": { + "type": "integer", + "format": "int32" + } + } + }, + "deployment.Protocols": { + "required": [ + "protocols" + ], + "properties": { + "protocols": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "deployment.RollingUpdateStrategy": { + "required": [ + "maxSurge", + "maxUnavailable" + ], + "properties": { + "maxSurge": { + "type": "string" + }, + "maxUnavailable": { + "type": "string" + } + } + }, + "deployment.RolloutSpec": { + "required": [ + "revision" + ], + "properties": { + "revision": { + "type": "string" + } + } + }, + "deployment.StatusInfo": { + "required": [ + "replicas", + "updated", + "available", + "unavailable" + ], + "properties": { + "available": { + "type": "integer", + "format": "int32" + }, + "replicas": { + "type": "integer", + "format": "int32" + }, + "unavailable": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "integer", + "format": "int32" + } + } + }, + "endpoint.Endpoint": { + "required": [ + "objectMeta", + "typeMeta", + "host", + "nodeName", + "ready", + "ports" + ], + "properties": { + "host": { + "type": "string" + }, + "nodeName": { + "type": "string" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.EndpointPort" + } + }, + "ready": { + "type": "boolean" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "endpoint.EndpointList": { + "required": [ + "listMeta", + "endpoints" + ], + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/endpoint.Endpoint" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "error": {}, + "handler.TerminalResponse": { + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string" + } + } + }, + "horizontalpodautoscaler.HorizontalPodAutoscaler": { + "required": [ + "objectMeta", + "typeMeta", + "scaleTargetRef", + "minReplicas", + "maxReplicas", + "currentCPUUtilizationPercentage", + "targetCPUUtilizationPercentage" + ], + "properties": { + "currentCPUUtilizationPercentage": { + "type": "integer", + "format": "int32" + }, + "maxReplicas": { + "type": "integer", + "format": "int32" + }, + "minReplicas": { + "type": "integer", + "format": "int32" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "scaleTargetRef": { + "$ref": "#/definitions/horizontalpodautoscaler.ScaleTargetRef" + }, + "targetCPUUtilizationPercentage": { + "type": "integer", + "format": "int32" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "horizontalpodautoscaler.HorizontalPodAutoscalerDetail": { + "required": [ + "objectMeta", + "typeMeta", + "scaleTargetRef", + "minReplicas", + "maxReplicas", + "currentCPUUtilizationPercentage", + "targetCPUUtilizationPercentage", + "currentReplicas", + "desiredReplicas", + "lastScaleTime" + ], + "properties": { + "currentCPUUtilizationPercentage": { + "type": "integer", + "format": "int32" + }, + "currentReplicas": { + "type": "integer", + "format": "int32" + }, + "desiredReplicas": { + "type": "integer", + "format": "int32" + }, + "lastScaleTime": { + "type": "string" + }, + "maxReplicas": { + "type": "integer", + "format": "int32" + }, + "minReplicas": { + "type": "integer", + "format": "int32" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "scaleTargetRef": { + "$ref": "#/definitions/horizontalpodautoscaler.ScaleTargetRef" + }, + "targetCPUUtilizationPercentage": { + "type": "integer", + "format": "int32" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "horizontalpodautoscaler.HorizontalPodAutoscalerList": { + "required": [ + "listMeta", + "horizontalpodautoscalers", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "horizontalpodautoscalers": { + "type": "array", + "items": { + "$ref": "#/definitions/horizontalpodautoscaler.HorizontalPodAutoscaler" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "horizontalpodautoscaler.ScaleTargetRef": { + "required": [ + "kind", + "name" + ], + "properties": { + "kind": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "inf.Dec": { + "required": [ + "unscaled", + "scale" + ], + "properties": { + "scale": { + "type": "integer", + "format": "int32" + }, + "unscaled": { + "$ref": "#/definitions/big.Int" + } + } + }, + "ingress.Ingress": { + "required": [ + "objectMeta", + "typeMeta", + "endpoints", + "hosts" + ], + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Endpoint" + } + }, + "hosts": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "ingress.IngressDetail": { + "required": [ + "hosts", + "objectMeta", + "typeMeta", + "endpoints", + "spec", + "status", + "errors" + ], + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Endpoint" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "hosts": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/v1.IngressSpec" + }, + "status": { + "$ref": "#/definitions/v1.IngressStatus" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "ingress.IngressList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/ingress.Ingress" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "ingressclass.IngressClass": { + "required": [ + "objectMeta", + "typeMeta", + "controller" + ], + "properties": { + "controller": { + "type": "string" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "ingressclass.IngressClassList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/ingressclass.IngressClass" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "job.Job": { + "required": [ + "objectMeta", + "typeMeta", + "podInfo", + "containerImages", + "initContainerImages", + "parallelism", + "jobStatus" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobStatus": { + "$ref": "#/definitions/job.JobStatus" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "parallelism": { + "type": "integer", + "format": "int32" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "job.JobDetail": { + "required": [ + "initContainerImages", + "parallelism", + "jobStatus", + "objectMeta", + "typeMeta", + "podInfo", + "containerImages", + "completions", + "errors" + ], + "properties": { + "completions": { + "type": "integer", + "format": "int32" + }, + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobStatus": { + "$ref": "#/definitions/job.JobStatus" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "parallelism": { + "type": "integer", + "format": "int32" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "job.JobList": { + "required": [ + "listMeta", + "cumulativeMetrics", + "status", + "jobs", + "errors" + ], + "properties": { + "cumulativeMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/definitions/job.Job" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "status": { + "$ref": "#/definitions/common.ResourceStatus" + } + } + }, + "job.JobStatus": { + "required": [ + "status", + "message", + "conditions" + ], + "properties": { + "conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Condition" + } + }, + "message": { + "type": "string" + }, + "status": { + "type": "string" + } + } + }, + "limitrange.LimitRangeItem": { + "properties": { + "default": { + "type": "string" + }, + "defaultRequest": { + "type": "string" + }, + "max": { + "type": "string" + }, + "maxLimitRequestRatio": { + "type": "string" + }, + "min": { + "type": "string" + }, + "resourceName": { + "type": "string" + }, + "resourceType": { + "type": "string" + } + } + }, + "logs.LogDetails": { + "required": [ + "info", + "selection", + "logs" + ], + "properties": { + "info": { + "$ref": "#/definitions/logs.LogInfo" + }, + "logs": { + "type": "array", + "items": { + "$ref": "#/definitions/logs.LogLine" + } + }, + "selection": { + "$ref": "#/definitions/logs.Selection" + } + } + }, + "logs.LogInfo": { + "required": [ + "podName", + "containerName", + "initContainerName", + "fromDate", + "toDate", + "truncated" + ], + "properties": { + "containerName": { + "type": "string" + }, + "fromDate": { + "type": "string" + }, + "initContainerName": { + "type": "string" + }, + "podName": { + "type": "string" + }, + "toDate": { + "type": "string" + }, + "truncated": { + "type": "boolean" + } + } + }, + "logs.LogLine": { + "required": [ + "timestamp", + "content" + ], + "properties": { + "content": { + "type": "string" + }, + "timestamp": { + "type": "string" + } + } + }, + "logs.LogLineId": { + "required": [ + "timestamp", + "lineNum" + ], + "properties": { + "lineNum": { + "type": "integer", + "format": "int32" + }, + "timestamp": { + "type": "string" + } + } + }, + "logs.Selection": { + "required": [ + "referencePoint", + "offsetFrom", + "offsetTo", + "logFilePosition" + ], + "properties": { + "logFilePosition": { + "type": "string" + }, + "offsetFrom": { + "type": "integer", + "format": "int32" + }, + "offsetTo": { + "type": "integer", + "format": "int32" + }, + "referencePoint": { + "$ref": "#/definitions/logs.LogLineId" + } + } + }, + "namespace.Namespace": { + "required": [ + "objectMeta", + "typeMeta", + "phase" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "phase": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "namespace.NamespaceDetail": { + "required": [ + "objectMeta", + "typeMeta", + "phase", + "resourceQuotaList", + "resourceLimits", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "phase": { + "type": "string" + }, + "resourceLimits": { + "type": "array", + "items": { + "$ref": "#/definitions/limitrange.LimitRangeItem" + } + }, + "resourceQuotaList": { + "$ref": "#/definitions/resourcequota.ResourceQuotaDetailList" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "namespace.NamespaceList": { + "required": [ + "listMeta", + "namespaces", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "namespaces": { + "type": "array", + "items": { + "$ref": "#/definitions/namespace.Namespace" + } + } + } + }, + "namespace.NamespaceSpec": { + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + } + }, + "networkpolicy.NetworkPolicy": { + "required": [ + "objectMeta", + "typeMeta" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "networkpolicy.NetworkPolicyDetail": { + "required": [ + "typeMeta", + "objectMeta", + "podSelector", + "errors" + ], + "properties": { + "egress": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.NetworkPolicyEgressRule" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "ingress": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.NetworkPolicyIngressRule" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "podSelector": { + "$ref": "#/definitions/v1.LabelSelector" + }, + "policyTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "networkpolicy.NetworkPolicyList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/networkpolicy.NetworkPolicy" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "node.Node": { + "required": [ + "objectMeta", + "typeMeta", + "ready", + "allocatedResources" + ], + "properties": { + "allocatedResources": { + "$ref": "#/definitions/node.NodeAllocatedResources" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "ready": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "node.NodeAllocatedResources": { + "required": [ + "cpuRequests", + "cpuRequestsFraction", + "cpuLimits", + "cpuLimitsFraction", + "cpuCapacity", + "memoryRequests", + "memoryRequestsFraction", + "memoryLimits", + "memoryLimitsFraction", + "memoryCapacity", + "allocatedPods", + "podCapacity", + "podFraction" + ], + "properties": { + "allocatedPods": { + "type": "integer", + "format": "int32" + }, + "cpuCapacity": { + "type": "integer", + "format": "int64" + }, + "cpuLimits": { + "type": "integer", + "format": "int64" + }, + "cpuLimitsFraction": { + "type": "number", + "format": "double" + }, + "cpuRequests": { + "type": "integer", + "format": "int64" + }, + "cpuRequestsFraction": { + "type": "number", + "format": "double" + }, + "memoryCapacity": { + "type": "integer", + "format": "int64" + }, + "memoryLimits": { + "type": "integer", + "format": "int64" + }, + "memoryLimitsFraction": { + "type": "number", + "format": "double" + }, + "memoryRequests": { + "type": "integer", + "format": "int64" + }, + "memoryRequestsFraction": { + "type": "number", + "format": "double" + }, + "podCapacity": { + "type": "integer", + "format": "int64" + }, + "podFraction": { + "type": "number", + "format": "double" + } + } + }, + "node.NodeDetail": { + "required": [ + "objectMeta", + "typeMeta", + "ready", + "allocatedResources", + "phase", + "podCIDR", + "providerID", + "unschedulable", + "nodeInfo", + "conditions", + "containerImages", + "podList", + "eventList", + "metrics", + "errors" + ], + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.NodeAddress" + } + }, + "allocatedResources": { + "$ref": "#/definitions/node.NodeAllocatedResources" + }, + "conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Condition" + } + }, + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "eventList": { + "$ref": "#/definitions/common.EventList" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "nodeInfo": { + "$ref": "#/definitions/v1.NodeSystemInfo" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "phase": { + "type": "string" + }, + "podCIDR": { + "type": "string" + }, + "podList": { + "$ref": "#/definitions/pod.PodList" + }, + "providerID": { + "type": "string" + }, + "ready": { + "type": "string" + }, + "taints": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.Taint" + } + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + }, + "unschedulable": { + "type": "boolean" + } + } + }, + "node.NodeList": { + "required": [ + "listMeta", + "nodes", + "cumulativeMetrics", + "errors" + ], + "properties": { + "cumulativeMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/definitions/node.Node" + } + } + } + }, + "persistentvolume.PersistentVolume": { + "required": [ + "objectMeta", + "typeMeta", + "capacity", + "accessModes", + "reclaimPolicy", + "storageClass", + "mountOptions", + "status", + "claim", + "reason" + ], + "properties": { + "accessModes": { + "type": "array", + "items": { + "type": "string" + } + }, + "capacity": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resource.Quantity" + } + }, + "claim": { + "type": "string" + }, + "mountOptions": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "reason": { + "type": "string" + }, + "reclaimPolicy": { + "type": "string" + }, + "status": { + "type": "string" + }, + "storageClass": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "persistentvolume.PersistentVolumeDetail": { + "required": [ + "objectMeta", + "capacity", + "storageClass", + "status", + "reason", + "typeMeta", + "accessModes", + "reclaimPolicy", + "mountOptions", + "claim", + "message", + "persistentVolumeSource" + ], + "properties": { + "accessModes": { + "type": "array", + "items": { + "type": "string" + } + }, + "capacity": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resource.Quantity" + } + }, + "claim": { + "type": "string" + }, + "message": { + "type": "string" + }, + "mountOptions": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "persistentVolumeSource": { + "$ref": "#/definitions/v1.PersistentVolumeSource" + }, + "reason": { + "type": "string" + }, + "reclaimPolicy": { + "type": "string" + }, + "status": { + "type": "string" + }, + "storageClass": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "persistentvolume.PersistentVolumeList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/persistentvolume.PersistentVolume" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "persistentvolumeclaim.PersistentVolumeClaim": { + "required": [ + "objectMeta", + "typeMeta", + "status", + "volume", + "capacity", + "accessModes", + "storageClass" + ], + "properties": { + "accessModes": { + "type": "array", + "items": { + "type": "string" + } + }, + "capacity": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resource.Quantity" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "status": { + "type": "string" + }, + "storageClass": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + }, + "volume": { + "type": "string" + } + } + }, + "persistentvolumeclaim.PersistentVolumeClaimDetail": { + "required": [ + "storageClass", + "objectMeta", + "typeMeta", + "status", + "volume", + "capacity", + "accessModes" + ], + "properties": { + "accessModes": { + "type": "array", + "items": { + "type": "string" + } + }, + "capacity": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resource.Quantity" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "status": { + "type": "string" + }, + "storageClass": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + }, + "volume": { + "type": "string" + } + } + }, + "persistentvolumeclaim.PersistentVolumeClaimList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/persistentvolumeclaim.PersistentVolumeClaim" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "pod.Container": { + "required": [ + "name", + "image", + "env", + "commands", + "args", + "volumeMounts", + "securityContext", + "status", + "livenessProbe", + "readinessProbe", + "startupProbe" + ], + "properties": { + "args": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "array", + "items": { + "type": "string" + } + }, + "env": { + "type": "array", + "items": { + "$ref": "#/definitions/pod.EnvVar" + } + }, + "image": { + "type": "string" + }, + "livenessProbe": { + "$ref": "#/definitions/v1.Probe" + }, + "name": { + "type": "string" + }, + "readinessProbe": { + "$ref": "#/definitions/v1.Probe" + }, + "resources": { + "$ref": "#/definitions/v1.ResourceRequirements" + }, + "securityContext": { + "$ref": "#/definitions/v1.SecurityContext" + }, + "startupProbe": { + "$ref": "#/definitions/v1.Probe" + }, + "status": { + "$ref": "#/definitions/v1.ContainerStatus" + }, + "volumeMounts": { + "type": "array", + "items": { + "$ref": "#/definitions/pod.VolumeMount" + } + } + } + }, + "pod.EnvVar": { + "required": [ + "name", + "value", + "valueFrom" + ], + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "$ref": "#/definitions/v1.EnvVarSource" + } + } + }, + "pod.Pod": { + "required": [ + "objectMeta", + "typeMeta", + "status", + "restartCount", + "metrics", + "warnings", + "nodeName", + "containerImages" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "metrics": { + "$ref": "#/definitions/pod.PodMetrics" + }, + "nodeName": { + "type": "string" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "restartCount": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + }, + "warnings": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Event" + } + } + } + }, + "pod.PodDetail": { + "required": [ + "objectMeta", + "typeMeta", + "podPhase", + "podIP", + "nodeName", + "serviceAccountName", + "restartCount", + "qosClass", + "containers", + "initContainers", + "metrics", + "conditions", + "eventList", + "persistentVolumeClaimList", + "securityContext", + "errors" + ], + "properties": { + "conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Condition" + } + }, + "containers": { + "type": "array", + "items": { + "$ref": "#/definitions/pod.Container" + } + }, + "controller": { + "$ref": "#/definitions/controller.ResourceOwner" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "eventList": { + "$ref": "#/definitions/common.EventList" + }, + "imagePullSecrets": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.LocalObjectReference" + } + }, + "initContainers": { + "type": "array", + "items": { + "$ref": "#/definitions/pod.Container" + } + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "nodeName": { + "type": "string" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "persistentVolumeClaimList": { + "$ref": "#/definitions/persistentvolumeclaim.PersistentVolumeClaimList" + }, + "podIP": { + "type": "string" + }, + "podPhase": { + "type": "string" + }, + "qosClass": { + "type": "string" + }, + "restartCount": { + "type": "integer", + "format": "int32" + }, + "securityContext": { + "$ref": "#/definitions/v1.PodSecurityContext" + }, + "serviceAccountName": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "pod.PodList": { + "required": [ + "listMeta", + "cumulativeMetrics", + "status", + "pods", + "errors" + ], + "properties": { + "cumulativeMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "pods": { + "type": "array", + "items": { + "$ref": "#/definitions/pod.Pod" + } + }, + "status": { + "$ref": "#/definitions/common.ResourceStatus" + } + } + }, + "pod.PodMetrics": { + "required": [ + "cpuUsage", + "memoryUsage", + "cpuUsageHistory", + "memoryUsageHistory" + ], + "properties": { + "cpuUsage": { + "type": "integer", + "format": "integer" + }, + "cpuUsageHistory": { + "type": "array", + "items": { + "$ref": "#/definitions/api.MetricPoint" + } + }, + "memoryUsage": { + "type": "integer", + "format": "integer" + }, + "memoryUsageHistory": { + "type": "array", + "items": { + "$ref": "#/definitions/api.MetricPoint" + } + } + } + }, + "pod.VolumeMount": { + "required": [ + "name", + "readOnly", + "mountPath", + "subPath", + "volume" + ], + "properties": { + "mountPath": { + "type": "string" + }, + "name": { + "type": "string" + }, + "readOnly": { + "type": "boolean" + }, + "subPath": { + "type": "string" + }, + "volume": { + "$ref": "#/definitions/v1.Volume" + } + } + }, + "replicaset.ReplicaSet": { + "required": [ + "objectMeta", + "typeMeta", + "podInfo", + "containerImages", + "initContainerImages" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "replicaset.ReplicaSetDetail": { + "required": [ + "objectMeta", + "typeMeta", + "podInfo", + "containerImages", + "initContainerImages", + "selector", + "horizontalPodAutoscalerList", + "errors" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "horizontalPodAutoscalerList": { + "$ref": "#/definitions/horizontalpodautoscaler.HorizontalPodAutoscalerList" + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "selector": { + "$ref": "#/definitions/v1.LabelSelector" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "replicaset.ReplicaSetList": { + "required": [ + "listMeta", + "cumulativeMetrics", + "status", + "replicaSets", + "errors" + ], + "properties": { + "cumulativeMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "replicaSets": { + "type": "array", + "items": { + "$ref": "#/definitions/replicaset.ReplicaSet" + } + }, + "status": { + "$ref": "#/definitions/common.ResourceStatus" + } + } + }, + "replicationcontroller.ReplicationController": { + "required": [ + "objectMeta", + "typeMeta", + "podInfo", + "containerImages", + "initContainerImages" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "replicationcontroller.ReplicationControllerDetail": { + "required": [ + "containerImages", + "initContainerImages", + "objectMeta", + "typeMeta", + "podInfo", + "labelSelector", + "errors" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelSelector": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "replicationcontroller.ReplicationControllerList": { + "required": [ + "listMeta", + "cumulativeMetrics", + "status", + "replicationControllers", + "errors" + ], + "properties": { + "cumulativeMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "replicationControllers": { + "type": "array", + "items": { + "$ref": "#/definitions/replicationcontroller.ReplicationController" + } + }, + "status": { + "$ref": "#/definitions/common.ResourceStatus" + } + } + }, + "replicationcontroller.ReplicationControllerSpec": { + "required": [ + "replicas" + ], + "properties": { + "replicas": { + "type": "integer", + "format": "int32" + } + } + }, + "resource.Quantity": { + "required": [ + "i", + "d", + "s", + "Format" + ], + "properties": { + "Format": { + "type": "string" + }, + "d": { + "$ref": "#/definitions/resource.infDecAmount" + }, + "i": { + "$ref": "#/definitions/resource.int64Amount" + }, + "s": { + "type": "string" + } + } + }, + "resource.infDecAmount": { + "required": [ + "Dec" + ], + "properties": { + "Dec": { + "$ref": "#/definitions/inf.Dec" + } + } + }, + "resource.int64Amount": { + "required": [ + "value", + "scale" + ], + "properties": { + "scale": { + "type": "integer", + "format": "int32" + }, + "value": { + "type": "integer", + "format": "int64" + } + } + }, + "resourcequota.ResourceQuotaDetail": { + "required": [ + "objectMeta", + "typeMeta" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "statusList": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resourcequota.ResourceStatus" + } + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "resourcequota.ResourceQuotaDetailList": { + "required": [ + "listMeta", + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/resourcequota.ResourceQuotaDetail" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "resourcequota.ResourceStatus": { + "properties": { + "hard": { + "type": "string" + }, + "used": { + "type": "string" + } + } + }, + "role.Role": { + "required": [ + "objectMeta", + "typeMeta" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "role.RoleDetail": { + "required": [ + "objectMeta", + "typeMeta", + "rules", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "rules": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.PolicyRule" + } + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "role.RoleList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/role.Role" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "rolebinding.RoleBinding": { + "required": [ + "objectMeta", + "typeMeta" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "rolebinding.RoleBindingDetail": { + "required": [ + "objectMeta", + "typeMeta", + "roleRef", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "roleRef": { + "$ref": "#/definitions/v1.RoleRef" + }, + "subjects": { + "type": "array", + "items": { + "$ref": "#/definitions/v1.Subject" + } + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "rolebinding.RoleBindingList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/rolebinding.RoleBinding" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "runtime.TypeMeta": { + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + } + } + }, + "runtime.Unknown": { + "required": [ + "ContentEncoding", + "ContentType" + ], + "properties": { + "ContentEncoding": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + } + } + }, + "scaling.ReplicaCounts": { + "required": [ + "desiredReplicas", + "actualReplicas" + ], + "properties": { + "actualReplicas": { + "type": "integer", + "format": "int32" + }, + "desiredReplicas": { + "type": "integer", + "format": "int32" + } + } + }, + "secret.ImagePullSecretSpec": { + "required": [ + "name", + "namespace", + "data" + ], + "properties": { + "data": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + } + } + }, + "secret.Secret": { + "required": [ + "objectMeta", + "typeMeta", + "type" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "type": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "secret.SecretDetail": { + "required": [ + "objectMeta", + "typeMeta", + "type", + "data" + ], + "properties": { + "data": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "type": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "secret.SecretList": { + "required": [ + "listMeta", + "secrets", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/definitions/secret.Secret" + } + } + } + }, + "service.Service": { + "required": [ + "objectMeta", + "typeMeta", + "internalEndpoint", + "externalEndpoints", + "selector", + "type", + "clusterIP" + ], + "properties": { + "clusterIP": { + "type": "string" + }, + "externalEndpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Endpoint" + } + }, + "internalEndpoint": { + "$ref": "#/definitions/common.Endpoint" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "selector": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "type": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "service.ServiceDetail": { + "required": [ + "type", + "clusterIP", + "objectMeta", + "typeMeta", + "internalEndpoint", + "externalEndpoints", + "selector", + "endpointList", + "sessionAffinity", + "errors" + ], + "properties": { + "clusterIP": { + "type": "string" + }, + "endpointList": { + "$ref": "#/definitions/endpoint.EndpointList" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "externalEndpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Endpoint" + } + }, + "internalEndpoint": { + "$ref": "#/definitions/common.Endpoint" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "selector": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sessionAffinity": { + "type": "string" + }, + "type": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "service.ServiceList": { + "required": [ + "listMeta", + "services", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "services": { + "type": "array", + "items": { + "$ref": "#/definitions/service.Service" + } + } + } + }, + "serviceaccount.ServiceAccount": { + "required": [ + "objectMeta", + "typeMeta" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "serviceaccount.ServiceAccountDetail": { + "required": [ + "objectMeta", + "typeMeta", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "serviceaccount.ServiceAccountList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/serviceaccount.ServiceAccount" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "statefulset.StatefulSet": { + "required": [ + "objectMeta", + "typeMeta", + "podInfo", + "containerImages", + "initContainerImages" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "statefulset.StatefulSetDetail": { + "required": [ + "objectMeta", + "typeMeta", + "podInfo", + "containerImages", + "initContainerImages", + "errors" + ], + "properties": { + "containerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "initContainerImages": { + "type": "array", + "items": { + "type": "string" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "podInfo": { + "$ref": "#/definitions/common.PodInfo" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "statefulset.StatefulSetList": { + "required": [ + "listMeta", + "status", + "statefulSets", + "cumulativeMetrics", + "errors" + ], + "properties": { + "cumulativeMetrics": { + "type": "array", + "items": { + "$ref": "#/definitions/api.Metric" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "statefulSets": { + "type": "array", + "items": { + "$ref": "#/definitions/statefulset.StatefulSet" + } + }, + "status": { + "$ref": "#/definitions/common.ResourceStatus" + } + } + }, + "storageclass.StorageClass": { + "required": [ + "objectMeta", + "typeMeta", + "provisioner", + "parameters" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "provisioner": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "storageclass.StorageClassList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/storageclass.StorageClass" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "types.CustomResourceDefinition": { + "required": [ + "objectMeta", + "typeMeta", + "group", + "scope", + "names", + "established" + ], + "properties": { + "established": { + "type": "string" + }, + "group": { + "type": "string" + }, + "names": { + "$ref": "#/definitions/types.CustomResourceDefinitionNames" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "scope": { + "type": "string" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + }, + "version": { + "type": "string" + } + } + }, + "types.CustomResourceDefinitionDetail": { + "required": [ + "group", + "scope", + "names", + "established", + "objectMeta", + "typeMeta", + "conditions", + "objects", + "subresources", + "errors" + ], + "properties": { + "conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/common.Condition" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "established": { + "type": "string" + }, + "group": { + "type": "string" + }, + "names": { + "$ref": "#/definitions/types.CustomResourceDefinitionNames" + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "objects": { + "$ref": "#/definitions/types.CustomResourceObjectList" + }, + "scope": { + "type": "string" + }, + "subresources": { + "type": "array", + "items": { + "type": "string" + } + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + }, + "version": { + "type": "string" + }, + "versions": { + "type": "array", + "items": { + "$ref": "#/definitions/types.CustomResourceDefinitionVersion" + } + } + } + }, + "types.CustomResourceDefinitionList": { + "required": [ + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/types.CustomResourceDefinition" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + } + } + }, + "types.CustomResourceDefinitionNames": { + "required": [ + "plural", + "kind" + ], + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "kind": { + "type": "string" + }, + "listKind": { + "type": "string" + }, + "plural": { + "type": "string" + }, + "shortNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "singular": { + "type": "string" + } + } + }, + "types.CustomResourceDefinitionVersion": { + "required": [ + "name", + "served", + "storage" + ], + "properties": { + "name": { + "type": "string" + }, + "served": { + "type": "boolean" + }, + "storage": { + "type": "boolean" + } + } + }, + "types.CustomResourceObject": { + "required": [ + "typeMeta", + "objectMeta" + ], + "properties": { + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "types.CustomResourceObjectDetail": { + "required": [ + "typeMeta", + "objectMeta", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "objectMeta": { + "$ref": "#/definitions/types.ObjectMeta" + }, + "typeMeta": { + "$ref": "#/definitions/types.TypeMeta" + } + } + }, + "types.CustomResourceObjectList": { + "required": [ + "typeMeta", + "listMeta", + "items", + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/error" + } + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/types.CustomResourceObject" + } + }, + "listMeta": { + "$ref": "#/definitions/types.ListMeta" + }, + "typeMeta": { + "$ref": "#/definitions/v1.TypeMeta" + } + } + }, + "types.ListMeta": { + "required": [ + "totalItems" + ], + "properties": { + "totalItems": { + "type": "integer", + "format": "int32" + } + } + }, + "types.ObjectMeta": { + "properties": { + "annotations": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "creationTimestamp": { + "type": "string" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "uid": { + "type": "string" + } + } + }, + "types.TypeMeta": { + "properties": { + "kind": { + "type": "string" + }, + "restartable": { + "type": "boolean" + }, + "scalable": { + "type": "boolean" + } + } + }, + "unstructured.Unstructured": { + "required": [ + "Object" + ], + "properties": { + "Object": { + "type": "object" + } + } + }, + "v1.AWSElasticBlockStoreVolumeSource": { + "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", + "required": [ + "volumeID" + ], + "properties": { + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "string" + }, + "partition": { + "description": "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).", + "type": "integer", + "format": "int32" + }, + "readOnly": { + "description": "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "boolean" + }, + "volumeID": { + "description": "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "string" + } + } + }, + "v1.AzureDiskVolumeSource": { + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "required": [ + "diskName", + "diskURI" + ], + "properties": { + "cachingMode": { + "description": "cachingMode is the Host Caching mode: None, Read Only, Read Write.", + "type": "string" + }, + "diskName": { + "description": "diskName is the Name of the data disk in the blob storage", + "type": "string" + }, + "diskURI": { + "description": "diskURI is the URI of data disk in the blob storage", + "type": "string" + }, + "fsType": { + "description": "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "kind": { + "description": "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", + "type": "string" + }, + "readOnly": { + "description": "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + } + } + }, + "v1.AzureFilePersistentVolumeSource": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "required": [ + "secretName", + "shareName", + "secretNamespace" + ], + "properties": { + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretName": { + "description": "secretName is the name of secret that contains Azure Storage Account Name and Key", + "type": "string" + }, + "secretNamespace": { + "description": "secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", + "type": "string" + }, + "shareName": { + "description": "shareName is the azure Share Name", + "type": "string" + } + } + }, + "v1.AzureFileVolumeSource": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "required": [ + "secretName", + "shareName" + ], + "properties": { + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretName": { + "description": "secretName is the name of secret that contains Azure Storage Account Name and Key", + "type": "string" + }, + "shareName": { + "description": "shareName is the azure share Name", + "type": "string" + } + } + }, + "v1.CSIPersistentVolumeSource": { + "description": "Represents storage that is managed by an external CSI volume driver (Beta feature)", + "required": [ + "driver", + "volumeHandle" + ], + "properties": { + "controllerExpandSecretRef": { + "description": "controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", + "$ref": "#/definitions/v1.SecretReference" + }, + "controllerPublishSecretRef": { + "description": "controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", + "$ref": "#/definitions/v1.SecretReference" + }, + "driver": { + "description": "driver is the name of the driver to use for this volume. Required.", + "type": "string" + }, + "fsType": { + "description": "fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", + "type": "string" + }, + "nodeExpandSecretRef": { + "description": "nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed.", + "$ref": "#/definitions/v1.SecretReference" + }, + "nodePublishSecretRef": { + "description": "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", + "$ref": "#/definitions/v1.SecretReference" + }, + "nodeStageSecretRef": { + "description": "nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", + "$ref": "#/definitions/v1.SecretReference" + }, + "readOnly": { + "description": "readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", + "type": "boolean" + }, + "volumeAttributes": { + "description": "volumeAttributes of the volume to publish.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "volumeHandle": { + "description": "volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.", + "type": "string" + } + } + }, + "v1.CSIVolumeSource": { + "description": "Represents a source location of a volume to mount, managed by an external CSI driver", + "required": [ + "driver" + ], + "properties": { + "driver": { + "description": "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", + "type": "string" + }, + "fsType": { + "description": "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", + "type": "string" + }, + "nodePublishSecretRef": { + "description": "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", + "$ref": "#/definitions/v1.LocalObjectReference" + }, + "readOnly": { + "description": "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", + "type": "boolean" + }, + "volumeAttributes": { + "description": "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "v1.Capabilities": { + "description": "Adds and removes POSIX capabilities from running containers.", + "properties": { + "add": { + "description": "Added capabilities", + "type": "array", + "items": { + "type": "string" + } + }, + "drop": { + "description": "Removed capabilities", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1.CephFSPersistentVolumeSource": { + "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", + "required": [ + "monitors" + ], + "properties": { + "monitors": { + "description": "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "array", + "items": { + "type": "string" + } + }, + "path": { + "description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", + "type": "string" + }, + "readOnly": { + "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "boolean" + }, + "secretFile": { + "description": "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + }, + "secretRef": { + "description": "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "$ref": "#/definitions/v1.SecretReference" + }, + "user": { + "description": "user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + } + } + }, + "v1.CephFSVolumeSource": { + "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", + "required": [ + "monitors" + ], + "properties": { + "monitors": { + "description": "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "array", + "items": { + "type": "string" + } + }, + "path": { + "description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", + "type": "string" + }, + "readOnly": { + "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "boolean" + }, + "secretFile": { + "description": "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + }, + "secretRef": { + "description": "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "$ref": "#/definitions/v1.LocalObjectReference" + }, + "user": { + "description": "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + } + } + }, + "v1.CinderPersistentVolumeSource": { + "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", + "required": [ + "volumeID" + ], + "properties": { + "fsType": { + "description": "fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + }, + "readOnly": { + "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack.", + "$ref": "#/definitions/v1.SecretReference" + }, + "volumeID": { + "description": "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + } + } + }, + "v1.CinderVolumeSource": { + "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", + "required": [ + "volumeID" + ], + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.", + "$ref": "#/definitions/v1.LocalObjectReference" + }, + "volumeID": { + "description": "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "type": "string" + } + } + }, + "v1.ClusterTrustBundleProjection": { + "description": "ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem.", + "required": [ + "path" + ], + "properties": { + "labelSelector": { + "description": "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as \"match nothing\". If set but empty, interpreted as \"match everything\".", + "$ref": "#/definitions/v1.LabelSelector" + }, + "name": { + "description": "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", + "type": "string" + }, + "optional": { + "description": "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", + "type": "boolean" + }, + "path": { + "description": "Relative path from the volume root to write the bundle.", + "type": "string" + }, + "signerName": { + "description": "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", + "type": "string" + } + } + }, + "v1.ConfigMapKeySelector": { + "description": "Selects a key from a ConfigMap.", + "required": [ + "key" + ], + "properties": { + "key": { + "description": "The key to select.", + "type": "string" + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the ConfigMap or its key must be defined", + "type": "boolean" + } + } + }, + "v1.ConfigMapProjection": { + "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", + "properties": { + "items": { + "description": "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.KeyToPath" + } + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "optional specify whether the ConfigMap or its keys must be defined", + "type": "boolean" + } + } + }, + "v1.ConfigMapVolumeSource": { + "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", + "properties": { + "defaultMode": { + "description": "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "items": { + "description": "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.KeyToPath" + } + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "optional specify whether the ConfigMap or its keys must be defined", + "type": "boolean" + } + } + }, + "v1.ContainerState": { + "description": "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.", + "properties": { + "running": { + "description": "Details about a running container", + "$ref": "#/definitions/v1.ContainerStateRunning" + }, + "terminated": { + "description": "Details about a terminated container", + "$ref": "#/definitions/v1.ContainerStateTerminated" + }, + "waiting": { + "description": "Details about a waiting container", + "$ref": "#/definitions/v1.ContainerStateWaiting" + } + } + }, + "v1.ContainerStateRunning": { + "description": "ContainerStateRunning is a running state of a container.", + "properties": { + "startedAt": { + "description": "Time at which the container was last (re-)started", + "type": "string" + } + } + }, + "v1.ContainerStateTerminated": { + "description": "ContainerStateTerminated is a terminated state of a container.", + "required": [ + "exitCode" + ], + "properties": { + "containerID": { + "description": "Container's ID in the format '\u003ctype\u003e://\u003ccontainer_id\u003e'", + "type": "string" + }, + "exitCode": { + "description": "Exit status from the last termination of the container", + "type": "integer", + "format": "int32" + }, + "finishedAt": { + "description": "Time at which the container last terminated", + "type": "string" + }, + "message": { + "description": "Message regarding the last termination of the container", + "type": "string" + }, + "reason": { + "description": "(brief) reason from the last termination of the container", + "type": "string" + }, + "signal": { + "description": "Signal from the last termination of the container", + "type": "integer", + "format": "int32" + }, + "startedAt": { + "description": "Time at which previous execution of the container started", + "type": "string" + } + } + }, + "v1.ContainerStateWaiting": { + "description": "ContainerStateWaiting is a waiting state of a container.", + "properties": { + "message": { + "description": "Message regarding why the container is not yet running.", + "type": "string" + }, + "reason": { + "description": "(brief) reason the container is not yet running.", + "type": "string" + } + } + }, + "v1.ContainerStatus": { + "description": "ContainerStatus contains details for the current status of this container.", + "required": [ + "name", + "ready", + "restartCount", + "image", + "imageID" + ], + "properties": { + "allocatedResources": { + "description": "AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resource.Quantity" + } + }, + "containerID": { + "description": "ContainerID is the ID of the container in the format '\u003ctype\u003e://\u003ccontainer_id\u003e'. Where type is a container runtime identifier, returned from Version call of CRI API (for example \"containerd\").", + "type": "string" + }, + "image": { + "description": "Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.", + "type": "string" + }, + "imageID": { + "description": "ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.", + "type": "string" + }, + "lastState": { + "description": "LastTerminationState holds the last termination state of the container to help debug container crashes and restarts. This field is not populated if the container is still running and RestartCount is 0.", + "$ref": "#/definitions/v1.ContainerState" + }, + "name": { + "description": "Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.", + "type": "string" + }, + "ready": { + "description": "Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field).\n\nThe value is typically used to determine whether a container is ready to accept traffic.", + "type": "boolean" + }, + "resources": { + "description": "Resources represents the compute resource requests and limits that have been successfully enacted on the running container after it has been started or has been successfully resized.", + "$ref": "#/definitions/v1.ResourceRequirements" + }, + "restartCount": { + "description": "RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.", + "type": "integer", + "format": "int32" + }, + "started": { + "description": "Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false.", + "type": "boolean" + }, + "state": { + "description": "State holds details about the container's current condition.", + "$ref": "#/definitions/v1.ContainerState" + } + } + }, + "v1.DownwardAPIProjection": { + "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", + "properties": { + "items": { + "description": "Items is a list of DownwardAPIVolume file", + "type": "array", + "items": { + "$ref": "#/definitions/v1.DownwardAPIVolumeFile" + } + } + } + }, + "v1.DownwardAPIVolumeFile": { + "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", + "required": [ + "path" + ], + "properties": { + "fieldRef": { + "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.", + "$ref": "#/definitions/v1.ObjectFieldSelector" + }, + "mode": { + "description": "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "path": { + "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", + "type": "string" + }, + "resourceFieldRef": { + "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", + "$ref": "#/definitions/v1.ResourceFieldSelector" + } + } + }, + "v1.DownwardAPIVolumeSource": { + "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", + "properties": { + "defaultMode": { + "description": "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "items": { + "description": "Items is a list of downward API volume file", + "type": "array", + "items": { + "$ref": "#/definitions/v1.DownwardAPIVolumeFile" + } + } + } + }, + "v1.EmptyDirVolumeSource": { + "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + "properties": { + "medium": { + "description": "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + "type": "string" + }, + "sizeLimit": { + "description": "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + "type": "string" + } + } + }, + "v1.EndpointPort": { + "description": "EndpointPort is a tuple that describes a single port.", + "required": [ + "port" + ], + "properties": { + "appProtocol": { + "description": "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.", + "type": "string" + }, + "name": { + "description": "The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.", + "type": "string" + }, + "port": { + "description": "The port number of the endpoint.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", + "type": "string" + } + } + }, + "v1.EnvVarSource": { + "description": "EnvVarSource represents a source for the value of an EnvVar.", + "properties": { + "configMapKeyRef": { + "description": "Selects a key of a ConfigMap.", + "$ref": "#/definitions/v1.ConfigMapKeySelector" + }, + "fieldRef": { + "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\u003cKEY\u003e']`, `metadata.annotations['\u003cKEY\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", + "$ref": "#/definitions/v1.ObjectFieldSelector" + }, + "resourceFieldRef": { + "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", + "$ref": "#/definitions/v1.ResourceFieldSelector" + }, + "secretKeyRef": { + "description": "Selects a key of a secret in the pod's namespace", + "$ref": "#/definitions/v1.SecretKeySelector" + } + } + }, + "v1.EphemeralVolumeSource": { + "description": "Represents an ephemeral volume that is handled by a normal storage driver.", + "properties": { + "volumeClaimTemplate": { + "description": "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `\u003cpod name\u003e-\u003cvolume name\u003e` where `\u003cvolume name\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil.", + "$ref": "#/definitions/v1.PersistentVolumeClaimTemplate" + } + } + }, + "v1.ExecAction": { + "description": "ExecAction describes a \"run in container\" action.", + "properties": { + "command": { + "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1.FCVolumeSource": { + "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "lun": { + "description": "lun is Optional: FC target lun number", + "type": "integer", + "format": "int32" + }, + "readOnly": { + "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "targetWWNs": { + "description": "targetWWNs is Optional: FC target worldwide names (WWNs)", + "type": "array", + "items": { + "type": "string" + } + }, + "wwids": { + "description": "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1.FlexPersistentVolumeSource": { + "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", + "required": [ + "driver" + ], + "properties": { + "driver": { + "description": "driver is the name of the driver to use for this volume.", + "type": "string" + }, + "fsType": { + "description": "fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", + "type": "string" + }, + "options": { + "description": "options is Optional: this field holds extra command options if any.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "readOnly": { + "description": "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", + "$ref": "#/definitions/v1.SecretReference" + } + } + }, + "v1.FlexVolumeSource": { + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", + "required": [ + "driver" + ], + "properties": { + "driver": { + "description": "driver is the name of the driver to use for this volume.", + "type": "string" + }, + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", + "type": "string" + }, + "options": { + "description": "options is Optional: this field holds extra command options if any.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "readOnly": { + "description": "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", + "$ref": "#/definitions/v1.LocalObjectReference" + } + } + }, + "v1.FlockerVolumeSource": { + "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", + "properties": { + "datasetName": { + "description": "datasetName is Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", + "type": "string" + }, + "datasetUUID": { + "description": "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", + "type": "string" + } + } + }, + "v1.GCEPersistentDiskVolumeSource": { + "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", + "required": [ + "pdName" + ], + "properties": { + "fsType": { + "description": "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "string" + }, + "partition": { + "description": "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "integer", + "format": "int32" + }, + "pdName": { + "description": "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "boolean" + } + } + }, + "v1.GRPCAction": { + "required": [ + "port", + "service" + ], + "properties": { + "port": { + "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", + "type": "integer", + "format": "int32" + }, + "service": { + "description": "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n\nIf this is not specified, the default behavior is defined by gRPC.", + "type": "string" + } + } + }, + "v1.GitRepoVolumeSource": { + "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", + "required": [ + "repository" + ], + "properties": { + "directory": { + "description": "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", + "type": "string" + }, + "repository": { + "description": "repository is the URL", + "type": "string" + }, + "revision": { + "description": "revision is the commit hash for the specified revision.", + "type": "string" + } + } + }, + "v1.GlusterfsPersistentVolumeSource": { + "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", + "required": [ + "endpoints", + "path" + ], + "properties": { + "endpoints": { + "description": "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "endpointsNamespace": { + "description": "endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "path": { + "description": "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "boolean" + } + } + }, + "v1.GlusterfsVolumeSource": { + "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", + "required": [ + "endpoints", + "path" + ], + "properties": { + "endpoints": { + "description": "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "path": { + "description": "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", + "type": "boolean" + } + } + }, + "v1.HTTPGetAction": { + "description": "HTTPGetAction describes an action based on HTTP Get requests.", + "required": [ + "port" + ], + "properties": { + "host": { + "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", + "type": "string" + }, + "httpHeaders": { + "description": "Custom headers to set in the request. HTTP allows repeated headers.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.HTTPHeader" + } + }, + "path": { + "description": "Path to access on the HTTP server.", + "type": "string" + }, + "port": { + "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", + "type": "string" + }, + "scheme": { + "description": "Scheme to use for connecting to the host. Defaults to HTTP.", + "type": "string" + } + } + }, + "v1.HTTPHeader": { + "description": "HTTPHeader describes a custom header to be used in HTTP probes", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", + "type": "string" + }, + "value": { + "description": "The header field value", + "type": "string" + } + } + }, + "v1.HTTPIngressPath": { + "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", + "required": [ + "pathType", + "backend" + ], + "properties": { + "backend": { + "description": "backend defines the referenced service endpoint to which the traffic will be forwarded to.", + "$ref": "#/definitions/v1.IngressBackend" + }, + "path": { + "description": "path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \"Exact\" or \"Prefix\".", + "type": "string" + }, + "pathType": { + "description": "pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n done on a path element by element basis. A path element refers is the\n list of labels in the path split by the '/' separator. A request is a\n match for path p if every p is an element-wise prefix of p of the\n request path. Note that if the last element of the path is a substring\n of the last element in request path, it is not a match (e.g. /foo/bar\n matches /foo/bar/baz, but does not match /foo/barbaz).\n* ImplementationSpecific: Interpretation of the Path matching is up to\n the IngressClass. Implementations can treat this as a separate PathType\n or treat it identically to Prefix or Exact path types.\nImplementations are required to support all path types.", + "type": "string" + } + } + }, + "v1.HTTPIngressRuleValue": { + "description": "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://\u003chost\u003e/\u003cpath\u003e?\u003csearchpart\u003e -\u003e backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", + "required": [ + "paths" + ], + "properties": { + "paths": { + "description": "paths is a collection of paths that map requests to backends.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.HTTPIngressPath" + } + } + } + }, + "v1.HostPathVolumeSource": { + "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", + "required": [ + "path" + ], + "properties": { + "path": { + "description": "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "type": "string" + }, + "type": { + "description": "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "type": "string" + } + } + }, + "v1.IPBlock": { + "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.", + "required": [ + "cidr" + ], + "properties": { + "cidr": { + "description": "cidr is a string representing the IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"", + "type": "string" + }, + "except": { + "description": "except is a slice of CIDRs that should not be included within an IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\" Except values will be rejected if they are outside the cidr range", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1.ISCSIPersistentVolumeSource": { + "description": "ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "properties": { + "chapAuthDiscovery": { + "description": "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", + "type": "boolean" + }, + "chapAuthSession": { + "description": "chapAuthSession defines whether support iSCSI Session CHAP authentication", + "type": "boolean" + }, + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", + "type": "string" + }, + "initiatorName": { + "description": "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection.", + "type": "string" + }, + "iqn": { + "description": "iqn is Target iSCSI Qualified Name.", + "type": "string" + }, + "iscsiInterface": { + "description": "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", + "type": "string" + }, + "lun": { + "description": "lun is iSCSI Target Lun number.", + "type": "integer", + "format": "int32" + }, + "portals": { + "description": "portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "type": "array", + "items": { + "type": "string" + } + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef is the CHAP Secret for iSCSI target and initiator authentication", + "$ref": "#/definitions/v1.SecretReference" + }, + "targetPortal": { + "description": "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "type": "string" + } + } + }, + "v1.ISCSIVolumeSource": { + "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "properties": { + "chapAuthDiscovery": { + "description": "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", + "type": "boolean" + }, + "chapAuthSession": { + "description": "chapAuthSession defines whether support iSCSI Session CHAP authentication", + "type": "boolean" + }, + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", + "type": "string" + }, + "initiatorName": { + "description": "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection.", + "type": "string" + }, + "iqn": { + "description": "iqn is the target iSCSI Qualified Name.", + "type": "string" + }, + "iscsiInterface": { + "description": "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", + "type": "string" + }, + "lun": { + "description": "lun represents iSCSI Target Lun number.", + "type": "integer", + "format": "int32" + }, + "portals": { + "description": "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "type": "array", + "items": { + "type": "string" + } + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef is the CHAP Secret for iSCSI target and initiator authentication", + "$ref": "#/definitions/v1.LocalObjectReference" + }, + "targetPortal": { + "description": "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "type": "string" + } + } + }, + "v1.IngressBackend": { + "description": "IngressBackend describes all endpoints for a given service and port.", + "properties": { + "resource": { + "description": "resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, a service.Name and service.Port must not be specified. This is a mutually exclusive setting with \"Service\".", + "$ref": "#/definitions/v1.TypedLocalObjectReference" + }, + "service": { + "description": "service references a service as a backend. This is a mutually exclusive setting with \"Resource\".", + "$ref": "#/definitions/v1.IngressServiceBackend" + } + } + }, + "v1.IngressLoadBalancerIngress": { + "description": "IngressLoadBalancerIngress represents the status of a load-balancer ingress point.", + "properties": { + "hostname": { + "description": "hostname is set for load-balancer ingress points that are DNS based.", + "type": "string" + }, + "ip": { + "description": "ip is set for load-balancer ingress points that are IP based.", + "type": "string" + }, + "ports": { + "description": "ports provides information about the ports exposed by this LoadBalancer.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.IngressPortStatus" + } + } + } + }, + "v1.IngressLoadBalancerStatus": { + "description": "IngressLoadBalancerStatus represents the status of a load-balancer.", + "properties": { + "ingress": { + "description": "ingress is a list containing ingress points for the load-balancer.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.IngressLoadBalancerIngress" + } + } + } + }, + "v1.IngressPortStatus": { + "description": "IngressPortStatus represents the error condition of a service port", + "required": [ + "port", + "protocol" + ], + "properties": { + "error": { + "description": "error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\n CamelCase names\n- cloud provider specific error values must have names that comply with the\n format foo.example.com/CamelCase.", + "type": "string" + }, + "port": { + "description": "port is the port number of the ingress port.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "protocol is the protocol of the ingress port. The supported values are: \"TCP\", \"UDP\", \"SCTP\"", + "type": "string" + } + } + }, + "v1.IngressRule": { + "description": "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", + "properties": { + "host": { + "description": "host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n the IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\n\nhost can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. \"*.foo.com\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\"). Requests will be matched against the Host field in the following way: 1. If host is precise, the request matches this rule if the http host header is equal to Host. 2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.", + "type": "string" + }, + "http": { + "$ref": "#/definitions/v1.HTTPIngressRuleValue" + } + } + }, + "v1.IngressRuleValue": { + "description": "IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.", + "properties": { + "http": { + "$ref": "#/definitions/v1.HTTPIngressRuleValue" + } + } + }, + "v1.IngressServiceBackend": { + "description": "IngressServiceBackend references a Kubernetes Service as a Backend.", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "name is the referenced service. The service must exist in the same namespace as the Ingress object.", + "type": "string" + }, + "port": { + "description": "port of the referenced service. A port name or port number is required for a IngressServiceBackend.", + "$ref": "#/definitions/v1.ServiceBackendPort" + } + } + }, + "v1.IngressSpec": { + "description": "IngressSpec describes the Ingress the user wishes to exist.", + "properties": { + "defaultBackend": { + "description": "defaultBackend is the backend that should handle requests that don't match any rule. If Rules are not specified, DefaultBackend must be specified. If DefaultBackend is not set, the handling of requests that do not match any of the rules will be up to the Ingress controller.", + "$ref": "#/definitions/v1.IngressBackend" + }, + "ingressClassName": { + "description": "ingressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -\u003e IngressClass -\u003e Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present.", + "type": "string" + }, + "rules": { + "description": "rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.IngressRule" + } + }, + "tls": { + "description": "tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.IngressTLS" + } + } + } + }, + "v1.IngressStatus": { + "description": "IngressStatus describe the current state of the Ingress.", + "properties": { + "loadBalancer": { + "description": "loadBalancer contains the current status of the load-balancer.", + "$ref": "#/definitions/v1.IngressLoadBalancerStatus" + } + } + }, + "v1.IngressTLS": { + "description": "IngressTLS describes the transport layer security associated with an ingress.", + "properties": { + "hosts": { + "description": "hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.", + "type": "array", + "items": { + "type": "string" + } + }, + "secretName": { + "description": "secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the \"Host\" header is used for routing.", + "type": "string" + } + } + }, + "v1.KeyToPath": { + "description": "Maps a string key to a path within a volume.", + "required": [ + "key", + "path" + ], + "properties": { + "key": { + "description": "key is the key to project.", + "type": "string" + }, + "mode": { + "description": "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "path": { + "description": "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", + "type": "string" + } + } + }, + "v1.LabelSelector": { + "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + "properties": { + "matchExpressions": { + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.LabelSelectorRequirement" + } + }, + "matchLabels": { + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "v1.LabelSelectorRequirement": { + "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "required": [ + "key", + "operator" + ], + "properties": { + "key": { + "description": "key is the label key that the selector applies to.", + "type": "string" + }, + "operator": { + "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", + "type": "string" + }, + "values": { + "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1.LocalObjectReference": { + "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", + "properties": { + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + } + } + }, + "v1.LocalVolumeSource": { + "description": "Local represents directly-attached storage with node affinity (Beta feature)", + "required": [ + "path" + ], + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a filesystem if unspecified.", + "type": "string" + }, + "path": { + "description": "path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", + "type": "string" + } + } + }, + "v1.ManagedFieldsEntry": { + "description": "ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.", + "type": "string" + }, + "fieldsType": { + "description": "FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"", + "type": "string" + }, + "fieldsV1": { + "description": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.", + "type": "string" + }, + "manager": { + "description": "Manager is an identifier of the workflow managing these fields.", + "type": "string" + }, + "operation": { + "description": "Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.", + "type": "string" + }, + "subresource": { + "description": "Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.", + "type": "string" + }, + "time": { + "description": "Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.", + "type": "string" + } + } + }, + "v1.NFSVolumeSource": { + "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + "required": [ + "server", + "path" + ], + "properties": { + "path": { + "description": "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "type": "boolean" + }, + "server": { + "description": "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "type": "string" + } + } + }, + "v1.NetworkPolicyEgressRule": { + "description": "NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8", + "properties": { + "ports": { + "description": "ports is a list of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.NetworkPolicyPort" + } + }, + "to": { + "description": "to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.NetworkPolicyPeer" + } + } + } + }, + "v1.NetworkPolicyIngressRule": { + "description": "NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.", + "properties": { + "from": { + "description": "from is a list of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.NetworkPolicyPeer" + } + }, + "ports": { + "description": "ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.NetworkPolicyPort" + } + } + } + }, + "v1.NetworkPolicyPeer": { + "description": "NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed", + "properties": { + "ipBlock": { + "description": "ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.", + "$ref": "#/definitions/v1.IPBlock" + }, + "namespaceSelector": { + "description": "namespaceSelector selects namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\n\nIf podSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the namespaces selected by namespaceSelector. Otherwise it selects all pods in the namespaces selected by namespaceSelector.", + "$ref": "#/definitions/v1.LabelSelector" + }, + "podSelector": { + "description": "podSelector is a label selector which selects pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\n\nIf namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the pods matching podSelector in the policy's own namespace.", + "$ref": "#/definitions/v1.LabelSelector" + } + } + }, + "v1.NetworkPolicyPort": { + "description": "NetworkPolicyPort describes a port to allow traffic on", + "properties": { + "endPort": { + "description": "endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", + "type": "string" + }, + "protocol": { + "description": "protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + "type": "string" + } + } + }, + "v1.NodeAddress": { + "description": "NodeAddress contains information for the node's address.", + "required": [ + "type", + "address" + ], + "properties": { + "address": { + "description": "The node address.", + "type": "string" + }, + "type": { + "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", + "type": "string" + } + } + }, + "v1.NodeSystemInfo": { + "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", + "required": [ + "machineID", + "systemUUID", + "bootID", + "kernelVersion", + "osImage", + "containerRuntimeVersion", + "kubeletVersion", + "kubeProxyVersion", + "operatingSystem", + "architecture" + ], + "properties": { + "architecture": { + "description": "The Architecture reported by the node", + "type": "string" + }, + "bootID": { + "description": "Boot ID reported by the node.", + "type": "string" + }, + "containerRuntimeVersion": { + "description": "ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).", + "type": "string" + }, + "kernelVersion": { + "description": "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).", + "type": "string" + }, + "kubeProxyVersion": { + "description": "KubeProxy Version reported by the node.", + "type": "string" + }, + "kubeletVersion": { + "description": "Kubelet Version reported by the node.", + "type": "string" + }, + "machineID": { + "description": "MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html", + "type": "string" + }, + "operatingSystem": { + "description": "The Operating System reported by the node", + "type": "string" + }, + "osImage": { + "description": "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).", + "type": "string" + }, + "systemUUID": { + "description": "SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid", + "type": "string" + } + } + }, + "v1.ObjectFieldSelector": { + "description": "ObjectFieldSelector selects an APIVersioned field of an object.", + "required": [ + "fieldPath" + ], + "properties": { + "apiVersion": { + "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".", + "type": "string" + }, + "fieldPath": { + "description": "Path of the field to select in the specified API version.", + "type": "string" + } + } + }, + "v1.ObjectMeta": { + "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", + "properties": { + "annotations": { + "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "creationTimestamp": { + "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "type": "string" + }, + "deletionGracePeriodSeconds": { + "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.", + "type": "integer", + "format": "int64" + }, + "deletionTimestamp": { + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "type": "string" + }, + "finalizers": { + "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.", + "type": "array", + "items": { + "type": "string" + } + }, + "generateName": { + "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will return a 409.\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency", + "type": "string" + }, + "generation": { + "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", + "type": "integer", + "format": "int64" + }, + "labels": { + "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "managedFields": { + "description": "ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.ManagedFieldsEntry" + } + }, + "name": { + "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", + "type": "string" + }, + "namespace": { + "description": "Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces", + "type": "string" + }, + "ownerReferences": { + "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.OwnerReference" + } + }, + "resourceVersion": { + "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", + "type": "string" + }, + "selfLink": { + "description": "Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.", + "type": "string" + }, + "uid": { + "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids", + "type": "string" + } + } + }, + "v1.ObjectReference": { + "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", + "properties": { + "apiVersion": { + "description": "API version of the referent.", + "type": "string" + }, + "fieldPath": { + "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", + "type": "string" + }, + "kind": { + "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + "type": "string" + }, + "resourceVersion": { + "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", + "type": "string" + }, + "uid": { + "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", + "type": "string" + } + } + }, + "v1.OwnerReference": { + "description": "OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ], + "properties": { + "apiVersion": { + "description": "API version of the referent.", + "type": "string" + }, + "blockOwnerDeletion": { + "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.", + "type": "boolean" + }, + "controller": { + "description": "If true, this reference points to the managing controller.", + "type": "boolean" + }, + "kind": { + "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", + "type": "string" + }, + "uid": { + "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids", + "type": "string" + } + } + }, + "v1.PersistentVolumeClaimSpec": { + "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes", + "properties": { + "accessModes": { + "description": "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", + "type": "array", + "items": { + "type": "string" + } + }, + "dataSource": { + "description": "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.", + "$ref": "#/definitions/v1.TypedLocalObjectReference" + }, + "dataSourceRef": { + "description": "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef\n allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n preserves all values, and generates an error if a disallowed value is\n specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", + "$ref": "#/definitions/v1.TypedObjectReference" + }, + "resources": { + "description": "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", + "$ref": "#/definitions/v1.VolumeResourceRequirements" + }, + "selector": { + "description": "selector is a label query over volumes to consider for binding.", + "$ref": "#/definitions/v1.LabelSelector" + }, + "storageClassName": { + "description": "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", + "type": "string" + }, + "volumeAttributesClassName": { + "description": "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + "type": "string" + }, + "volumeMode": { + "description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", + "type": "string" + }, + "volumeName": { + "description": "volumeName is the binding reference to the PersistentVolume backing this claim.", + "type": "string" + } + } + }, + "v1.PersistentVolumeClaimTemplate": { + "description": "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.", + "required": [ + "spec" + ], + "properties": { + "metadata": { + "description": "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", + "$ref": "#/definitions/v1.ObjectMeta" + }, + "spec": { + "description": "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", + "$ref": "#/definitions/v1.PersistentVolumeClaimSpec" + } + } + }, + "v1.PersistentVolumeClaimVolumeSource": { + "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", + "required": [ + "claimName" + ], + "properties": { + "claimName": { + "description": "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "type": "string" + }, + "readOnly": { + "description": "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", + "type": "boolean" + } + } + }, + "v1.PersistentVolumeSource": { + "description": "PersistentVolumeSource is similar to VolumeSource but meant for the administrator who creates PVs. Exactly one of its members must be set.", + "properties": { + "awsElasticBlockStore": { + "description": "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "$ref": "#/definitions/v1.AWSElasticBlockStoreVolumeSource" + }, + "azureDisk": { + "description": "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "$ref": "#/definitions/v1.AzureDiskVolumeSource" + }, + "azureFile": { + "description": "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "$ref": "#/definitions/v1.AzureFilePersistentVolumeSource" + }, + "cephfs": { + "description": "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/v1.CephFSPersistentVolumeSource" + }, + "cinder": { + "description": "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "$ref": "#/definitions/v1.CinderPersistentVolumeSource" + }, + "csi": { + "description": "csi represents storage that is handled by an external CSI driver (Beta feature).", + "$ref": "#/definitions/v1.CSIPersistentVolumeSource" + }, + "fc": { + "description": "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", + "$ref": "#/definitions/v1.FCVolumeSource" + }, + "flexVolume": { + "description": "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", + "$ref": "#/definitions/v1.FlexPersistentVolumeSource" + }, + "flocker": { + "description": "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running", + "$ref": "#/definitions/v1.FlockerVolumeSource" + }, + "gcePersistentDisk": { + "description": "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "$ref": "#/definitions/v1.GCEPersistentDiskVolumeSource" + }, + "glusterfs": { + "description": "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md", + "$ref": "#/definitions/v1.GlusterfsPersistentVolumeSource" + }, + "hostPath": { + "description": "hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "$ref": "#/definitions/v1.HostPathVolumeSource" + }, + "iscsi": { + "description": "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.", + "$ref": "#/definitions/v1.ISCSIPersistentVolumeSource" + }, + "local": { + "description": "local represents directly-attached storage with node affinity", + "$ref": "#/definitions/v1.LocalVolumeSource" + }, + "nfs": { + "description": "nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "$ref": "#/definitions/v1.NFSVolumeSource" + }, + "photonPersistentDisk": { + "description": "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", + "$ref": "#/definitions/v1.PhotonPersistentDiskVolumeSource" + }, + "portworxVolume": { + "description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/v1.PortworxVolumeSource" + }, + "quobyte": { + "description": "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/v1.QuobyteVolumeSource" + }, + "rbd": { + "description": "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", + "$ref": "#/definitions/v1.RBDPersistentVolumeSource" + }, + "scaleIO": { + "description": "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", + "$ref": "#/definitions/v1.ScaleIOPersistentVolumeSource" + }, + "storageos": { + "description": "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md", + "$ref": "#/definitions/v1.StorageOSPersistentVolumeSource" + }, + "vsphereVolume": { + "description": "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/v1.VsphereVirtualDiskVolumeSource" + } + } + }, + "v1.PhotonPersistentDiskVolumeSource": { + "description": "Represents a Photon Controller persistent disk resource.", + "required": [ + "pdID" + ], + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "pdID": { + "description": "pdID is the ID that identifies Photon Controller persistent disk", + "type": "string" + } + } + }, + "v1.PodSecurityContext": { + "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", + "properties": { + "fsGroup": { + "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw ", + "type": "integer", + "format": "int64" + }, + "fsGroupChangePolicy": { + "description": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.", + "type": "string" + }, + "runAsGroup": { + "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + "type": "integer", + "format": "int64" + }, + "runAsNonRoot": { + "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "type": "boolean" + }, + "runAsUser": { + "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + "type": "integer", + "format": "int64" + }, + "seLinuxOptions": { + "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.", + "$ref": "#/definitions/v1.SELinuxOptions" + }, + "seccompProfile": { + "description": "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.", + "$ref": "#/definitions/v1.SeccompProfile" + }, + "supplementalGroups": { + "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.", + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "sysctls": { + "description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.Sysctl" + } + }, + "windowsOptions": { + "description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + "$ref": "#/definitions/v1.WindowsSecurityContextOptions" + } + } + }, + "v1.PolicyRule": { + "description": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", + "required": [ + "verbs" + ], + "properties": { + "apiGroups": { + "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.", + "type": "array", + "items": { + "type": "string" + } + }, + "nonResourceURLs": { + "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", + "type": "array", + "items": { + "type": "string" + } + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "description": "Resources is a list of resources this rule applies to. '*' represents all resources.", + "type": "array", + "items": { + "type": "string" + } + }, + "verbs": { + "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1.PortworxVolumeSource": { + "description": "PortworxVolumeSource represents a Portworx volume resource.", + "required": [ + "volumeID" + ], + "properties": { + "fsType": { + "description": "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "volumeID": { + "description": "volumeID uniquely identifies a Portworx volume", + "type": "string" + } + } + }, + "v1.Probe": { + "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "properties": { + "exec": { + "description": "Exec specifies the action to take.", + "$ref": "#/definitions/v1.ExecAction" + }, + "failureThreshold": { + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "grpc": { + "description": "GRPC specifies an action involving a GRPC port.", + "$ref": "#/definitions/v1.GRPCAction" + }, + "httpGet": { + "description": "HTTPGet specifies the http request to perform.", + "$ref": "#/definitions/v1.HTTPGetAction" + }, + "initialDelaySeconds": { + "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + }, + "periodSeconds": { + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "successThreshold": { + "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "tcpSocket": { + "description": "TCPSocket specifies an action involving a TCP port.", + "$ref": "#/definitions/v1.TCPSocketAction" + }, + "terminationGracePeriodSeconds": { + "description": "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", + "type": "integer", + "format": "int64" + }, + "timeoutSeconds": { + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + } + } + }, + "v1.ProbeHandler": { + "description": "ProbeHandler defines a specific action that should be taken in a probe. One and only one of the fields must be specified.", + "properties": { + "exec": { + "description": "Exec specifies the action to take.", + "$ref": "#/definitions/v1.ExecAction" + }, + "grpc": { + "description": "GRPC specifies an action involving a GRPC port.", + "$ref": "#/definitions/v1.GRPCAction" + }, + "httpGet": { + "description": "HTTPGet specifies the http request to perform.", + "$ref": "#/definitions/v1.HTTPGetAction" + }, + "tcpSocket": { + "description": "TCPSocket specifies an action involving a TCP port.", + "$ref": "#/definitions/v1.TCPSocketAction" + } + } + }, + "v1.ProjectedVolumeSource": { + "description": "Represents a projected volume source", + "required": [ + "sources" + ], + "properties": { + "defaultMode": { + "description": "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "sources": { + "description": "sources is the list of volume projections", + "type": "array", + "items": { + "$ref": "#/definitions/v1.VolumeProjection" + } + } + } + }, + "v1.QuobyteVolumeSource": { + "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", + "required": [ + "registry", + "volume" + ], + "properties": { + "group": { + "description": "group to map volume access to Default is no group", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", + "type": "boolean" + }, + "registry": { + "description": "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", + "type": "string" + }, + "tenant": { + "description": "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", + "type": "string" + }, + "user": { + "description": "user to map volume access to Defaults to serivceaccount user", + "type": "string" + }, + "volume": { + "description": "volume is a string that references an already created Quobyte volume by name.", + "type": "string" + } + } + }, + "v1.RBDPersistentVolumeSource": { + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "required": [ + "monitors", + "image" + ], + "properties": { + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "type": "string" + }, + "image": { + "description": "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "keyring": { + "description": "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "monitors": { + "description": "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "array", + "items": { + "type": "string" + } + }, + "pool": { + "description": "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "$ref": "#/definitions/v1.SecretReference" + }, + "user": { + "description": "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + } + } + }, + "v1.RBDVolumeSource": { + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "required": [ + "monitors", + "image" + ], + "properties": { + "fsType": { + "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "type": "string" + }, + "image": { + "description": "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "keyring": { + "description": "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "monitors": { + "description": "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "array", + "items": { + "type": "string" + } + }, + "pool": { + "description": "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "readOnly": { + "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "$ref": "#/definitions/v1.LocalObjectReference" + }, + "user": { + "description": "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", + "type": "string" + } + } + }, + "v1.ResourceClaim": { + "description": "ResourceClaim references one entry in PodSpec.ResourceClaims.", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", + "type": "string" + } + } + }, + "v1.ResourceFieldSelector": { + "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", + "required": [ + "resource" + ], + "properties": { + "containerName": { + "description": "Container name: required for volumes, optional for env vars", + "type": "string" + }, + "divisor": { + "description": "Specifies the output format of the exposed resources, defaults to \"1\"", + "type": "string" + }, + "resource": { + "description": "Required: resource to select", + "type": "string" + } + } + }, + "v1.ResourceRequirements": { + "description": "ResourceRequirements describes the compute resource requirements.", + "properties": { + "claims": { + "description": "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable. It can only be set for containers.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.ResourceClaim" + } + }, + "limits": { + "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resource.Quantity" + } + }, + "requests": { + "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resource.Quantity" + } + } + } + }, + "v1.RoleRef": { + "description": "RoleRef contains information that points to the role being used", + "required": [ + "apiGroup", + "kind", + "name" + ], + "properties": { + "apiGroup": { + "description": "APIGroup is the group for the resource being referenced", + "type": "string" + }, + "kind": { + "description": "Kind is the type of resource being referenced", + "type": "string" + }, + "name": { + "description": "Name is the name of resource being referenced", + "type": "string" + } + } + }, + "v1.SELinuxOptions": { + "description": "SELinuxOptions are the labels to be applied to the container", + "properties": { + "level": { + "description": "Level is SELinux level label that applies to the container.", + "type": "string" + }, + "role": { + "description": "Role is a SELinux role label that applies to the container.", + "type": "string" + }, + "type": { + "description": "Type is a SELinux type label that applies to the container.", + "type": "string" + }, + "user": { + "description": "User is a SELinux user label that applies to the container.", + "type": "string" + } + } + }, + "v1.ScaleIOPersistentVolumeSource": { + "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", + "required": [ + "gateway", + "system", + "secretRef" + ], + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"", + "type": "string" + }, + "gateway": { + "description": "gateway is the host address of the ScaleIO API Gateway.", + "type": "string" + }, + "protectionDomain": { + "description": "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", + "$ref": "#/definitions/v1.SecretReference" + }, + "sslEnabled": { + "description": "sslEnabled is the flag to enable/disable SSL communication with Gateway, default false", + "type": "boolean" + }, + "storageMode": { + "description": "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", + "type": "string" + }, + "storagePool": { + "description": "storagePool is the ScaleIO Storage Pool associated with the protection domain.", + "type": "string" + }, + "system": { + "description": "system is the name of the storage system as configured in ScaleIO.", + "type": "string" + }, + "volumeName": { + "description": "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", + "type": "string" + } + } + }, + "v1.ScaleIOVolumeSource": { + "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", + "required": [ + "gateway", + "system", + "secretRef" + ], + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\".", + "type": "string" + }, + "gateway": { + "description": "gateway is the host address of the ScaleIO API Gateway.", + "type": "string" + }, + "protectionDomain": { + "description": "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", + "type": "string" + }, + "readOnly": { + "description": "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", + "$ref": "#/definitions/v1.LocalObjectReference" + }, + "sslEnabled": { + "description": "sslEnabled Flag enable/disable SSL communication with Gateway, default false", + "type": "boolean" + }, + "storageMode": { + "description": "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", + "type": "string" + }, + "storagePool": { + "description": "storagePool is the ScaleIO Storage Pool associated with the protection domain.", + "type": "string" + }, + "system": { + "description": "system is the name of the storage system as configured in ScaleIO.", + "type": "string" + }, + "volumeName": { + "description": "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", + "type": "string" + } + } + }, + "v1.SeccompProfile": { + "description": "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.", + "required": [ + "type" + ], + "properties": { + "localhostProfile": { + "description": "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \"Localhost\". Must NOT be set for any other type.", + "type": "string" + }, + "type": { + "description": "type indicates which kind of seccomp profile will be applied. Valid options are:\n\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", + "type": "string" + } + } + }, + "v1.SecretKeySelector": { + "description": "SecretKeySelector selects a key of a Secret.", + "required": [ + "key" + ], + "properties": { + "key": { + "description": "The key of the secret to select from. Must be a valid secret key.", + "type": "string" + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the Secret or its key must be defined", + "type": "boolean" + } + } + }, + "v1.SecretProjection": { + "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", + "properties": { + "items": { + "description": "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.KeyToPath" + } + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "optional field specify whether the Secret or its key must be defined", + "type": "boolean" + } + } + }, + "v1.SecretReference": { + "description": "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", + "properties": { + "name": { + "description": "name is unique within a namespace to reference a secret resource.", + "type": "string" + }, + "namespace": { + "description": "namespace defines the space within which the secret name must be unique.", + "type": "string" + } + } + }, + "v1.SecretVolumeSource": { + "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", + "properties": { + "defaultMode": { + "description": "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "items": { + "description": "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "type": "array", + "items": { + "$ref": "#/definitions/v1.KeyToPath" + } + }, + "optional": { + "description": "optional field specify whether the Secret or its keys must be defined", + "type": "boolean" + }, + "secretName": { + "description": "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "type": "string" + } + } + }, + "v1.SecurityContext": { + "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", + "properties": { + "allowPrivilegeEscalation": { + "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", + "type": "boolean" + }, + "capabilities": { + "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.", + "$ref": "#/definitions/v1.Capabilities" + }, + "privileged": { + "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.", + "type": "boolean" + }, + "procMount": { + "description": "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", + "type": "string" + }, + "readOnlyRootFilesystem": { + "description": "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", + "type": "boolean" + }, + "runAsGroup": { + "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", + "type": "integer", + "format": "int64" + }, + "runAsNonRoot": { + "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "type": "boolean" + }, + "runAsUser": { + "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", + "type": "integer", + "format": "int64" + }, + "seLinuxOptions": { + "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", + "$ref": "#/definitions/v1.SELinuxOptions" + }, + "seccompProfile": { + "description": "The seccomp options to use by this container. If seccomp options are provided at both the pod \u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.", + "$ref": "#/definitions/v1.SeccompProfile" + }, + "windowsOptions": { + "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.", + "$ref": "#/definitions/v1.WindowsSecurityContextOptions" + } + } + }, + "v1.ServiceAccountTokenProjection": { + "description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).", + "required": [ + "path" + ], + "properties": { + "audience": { + "description": "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", + "type": "string" + }, + "expirationSeconds": { + "description": "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", + "type": "integer", + "format": "int64" + }, + "path": { + "description": "path is the path relative to the mount point of the file to project the token into.", + "type": "string" + } + } + }, + "v1.ServiceBackendPort": { + "description": "ServiceBackendPort is the service port being referenced.", + "properties": { + "name": { + "description": "name is the name of the port on the Service. This is a mutually exclusive setting with \"Number\".", + "type": "string" + }, + "number": { + "description": "number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \"Name\".", + "type": "integer", + "format": "int32" + } + } + }, + "v1.StorageOSPersistentVolumeSource": { + "description": "Represents a StorageOS persistent volume resource.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", + "$ref": "#/definitions/v1.ObjectReference" + }, + "volumeName": { + "description": "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", + "type": "string" + }, + "volumeNamespace": { + "description": "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", + "type": "string" + } + } + }, + "v1.StorageOSVolumeSource": { + "description": "Represents a StorageOS persistent volume resource.", + "properties": { + "fsType": { + "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "readOnly": { + "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", + "$ref": "#/definitions/v1.LocalObjectReference" + }, + "volumeName": { + "description": "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", + "type": "string" + }, + "volumeNamespace": { + "description": "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", + "type": "string" + } + } + }, + "v1.Subject": { + "description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", + "required": [ + "kind", + "name" + ], + "properties": { + "apiGroup": { + "description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.", + "type": "string" + }, + "kind": { + "description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", + "type": "string" + }, + "name": { + "description": "Name of the object being referenced.", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", + "type": "string" + } + } + }, + "v1.Sysctl": { + "description": "Sysctl defines a kernel parameter to be set", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "description": "Name of a property to set", + "type": "string" + }, + "value": { + "description": "Value of a property to set", + "type": "string" + } + } + }, + "v1.TCPSocketAction": { + "description": "TCPSocketAction describes an action based on opening a socket", + "required": [ + "port" + ], + "properties": { + "host": { + "description": "Optional: Host name to connect to, defaults to the pod IP.", + "type": "string" + }, + "port": { + "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", + "type": "string" + } + } + }, + "v1.Taint": { + "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", + "required": [ + "key", + "effect" + ], + "properties": { + "effect": { + "description": "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.", + "type": "string" + }, + "key": { + "description": "Required. The taint key to be applied to a node.", + "type": "string" + }, + "timeAdded": { + "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.", + "type": "string" + }, + "value": { + "description": "The taint value corresponding to the taint key.", + "type": "string" + } + } + }, + "v1.TypeMeta": { + "description": "TypeMeta describes an individual object in an API response or request with strings representing the type of the object and its API schema version. Structures that are versioned or persisted should inline TypeMeta.", + "properties": { + "apiVersion": { + "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" + }, + "kind": { + "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" + } + } + }, + "v1.TypedLocalObjectReference": { + "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", + "required": [ + "apiGroup", + "kind", + "name" + ], + "properties": { + "apiGroup": { + "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + "type": "string" + }, + "kind": { + "description": "Kind is the type of resource being referenced", + "type": "string" + }, + "name": { + "description": "Name is the name of resource being referenced", + "type": "string" + } + } + }, + "v1.TypedObjectReference": { + "required": [ + "apiGroup", + "kind", + "name" + ], + "properties": { + "apiGroup": { + "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + "type": "string" + }, + "kind": { + "description": "Kind is the type of resource being referenced", + "type": "string" + }, + "name": { + "description": "Name is the name of resource being referenced", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", + "type": "string" + } + } + }, + "v1.Volume": { + "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", + "required": [ + "name" + ], + "properties": { + "awsElasticBlockStore": { + "description": "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "$ref": "#/definitions/v1.AWSElasticBlockStoreVolumeSource" + }, + "azureDisk": { + "description": "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "$ref": "#/definitions/v1.AzureDiskVolumeSource" + }, + "azureFile": { + "description": "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "$ref": "#/definitions/v1.AzureFileVolumeSource" + }, + "cephfs": { + "description": "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/v1.CephFSVolumeSource" + }, + "cinder": { + "description": "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "$ref": "#/definitions/v1.CinderVolumeSource" + }, + "configMap": { + "description": "configMap represents a configMap that should populate this volume", + "$ref": "#/definitions/v1.ConfigMapVolumeSource" + }, + "csi": { + "description": "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", + "$ref": "#/definitions/v1.CSIVolumeSource" + }, + "downwardAPI": { + "description": "downwardAPI represents downward API about the pod that should populate this volume", + "$ref": "#/definitions/v1.DownwardAPIVolumeSource" + }, + "emptyDir": { + "description": "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + "$ref": "#/definitions/v1.EmptyDirVolumeSource" + }, + "ephemeral": { + "description": "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.", + "$ref": "#/definitions/v1.EphemeralVolumeSource" + }, + "fc": { + "description": "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", + "$ref": "#/definitions/v1.FCVolumeSource" + }, + "flexVolume": { + "description": "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", + "$ref": "#/definitions/v1.FlexVolumeSource" + }, + "flocker": { + "description": "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", + "$ref": "#/definitions/v1.FlockerVolumeSource" + }, + "gcePersistentDisk": { + "description": "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "$ref": "#/definitions/v1.GCEPersistentDiskVolumeSource" + }, + "gitRepo": { + "description": "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", + "$ref": "#/definitions/v1.GitRepoVolumeSource" + }, + "glusterfs": { + "description": "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", + "$ref": "#/definitions/v1.GlusterfsVolumeSource" + }, + "hostPath": { + "description": "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "$ref": "#/definitions/v1.HostPathVolumeSource" + }, + "iscsi": { + "description": "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", + "$ref": "#/definitions/v1.ISCSIVolumeSource" + }, + "name": { + "description": "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "nfs": { + "description": "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "$ref": "#/definitions/v1.NFSVolumeSource" + }, + "persistentVolumeClaim": { + "description": "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "$ref": "#/definitions/v1.PersistentVolumeClaimVolumeSource" + }, + "photonPersistentDisk": { + "description": "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", + "$ref": "#/definitions/v1.PhotonPersistentDiskVolumeSource" + }, + "portworxVolume": { + "description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/v1.PortworxVolumeSource" + }, + "projected": { + "description": "projected items for all in one resources secrets, configmaps, and downward API", + "$ref": "#/definitions/v1.ProjectedVolumeSource" + }, + "quobyte": { + "description": "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/v1.QuobyteVolumeSource" + }, + "rbd": { + "description": "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", + "$ref": "#/definitions/v1.RBDVolumeSource" + }, + "scaleIO": { + "description": "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", + "$ref": "#/definitions/v1.ScaleIOVolumeSource" + }, + "secret": { + "description": "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "$ref": "#/definitions/v1.SecretVolumeSource" + }, + "storageos": { + "description": "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", + "$ref": "#/definitions/v1.StorageOSVolumeSource" + }, + "vsphereVolume": { + "description": "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/v1.VsphereVirtualDiskVolumeSource" + } + } + }, + "v1.VolumeProjection": { + "description": "Projection that may be projected along with other supported volume types", + "properties": { + "clusterTrustBundle": { + "description": "ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file.\n\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\n\nClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector.\n\nKubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.", + "$ref": "#/definitions/v1.ClusterTrustBundleProjection" + }, + "configMap": { + "description": "configMap information about the configMap data to project", + "$ref": "#/definitions/v1.ConfigMapProjection" + }, + "downwardAPI": { + "description": "downwardAPI information about the downwardAPI data to project", + "$ref": "#/definitions/v1.DownwardAPIProjection" + }, + "secret": { + "description": "secret information about the secret data to project", + "$ref": "#/definitions/v1.SecretProjection" + }, + "serviceAccountToken": { + "description": "serviceAccountToken is information about the serviceAccountToken data to project", + "$ref": "#/definitions/v1.ServiceAccountTokenProjection" + } + } + }, + "v1.VolumeResourceRequirements": { + "description": "VolumeResourceRequirements describes the storage resource requirements for a volume.", + "properties": { + "limits": { + "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resource.Quantity" + } + }, + "requests": { + "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resource.Quantity" + } + } + } + }, + "v1.VolumeSource": { + "description": "Represents the source of a volume to mount. Only one of its members may be specified.", + "properties": { + "awsElasticBlockStore": { + "description": "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "$ref": "#/definitions/v1.AWSElasticBlockStoreVolumeSource" + }, + "azureDisk": { + "description": "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "$ref": "#/definitions/v1.AzureDiskVolumeSource" + }, + "azureFile": { + "description": "azureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "$ref": "#/definitions/v1.AzureFileVolumeSource" + }, + "cephfs": { + "description": "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/v1.CephFSVolumeSource" + }, + "cinder": { + "description": "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", + "$ref": "#/definitions/v1.CinderVolumeSource" + }, + "configMap": { + "description": "configMap represents a configMap that should populate this volume", + "$ref": "#/definitions/v1.ConfigMapVolumeSource" + }, + "csi": { + "description": "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", + "$ref": "#/definitions/v1.CSIVolumeSource" + }, + "downwardAPI": { + "description": "downwardAPI represents downward API about the pod that should populate this volume", + "$ref": "#/definitions/v1.DownwardAPIVolumeSource" + }, + "emptyDir": { + "description": "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + "$ref": "#/definitions/v1.EmptyDirVolumeSource" + }, + "ephemeral": { + "description": "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.", + "$ref": "#/definitions/v1.EphemeralVolumeSource" + }, + "fc": { + "description": "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", + "$ref": "#/definitions/v1.FCVolumeSource" + }, + "flexVolume": { + "description": "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", + "$ref": "#/definitions/v1.FlexVolumeSource" + }, + "flocker": { + "description": "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", + "$ref": "#/definitions/v1.FlockerVolumeSource" + }, + "gcePersistentDisk": { + "description": "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "$ref": "#/definitions/v1.GCEPersistentDiskVolumeSource" + }, + "gitRepo": { + "description": "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", + "$ref": "#/definitions/v1.GitRepoVolumeSource" + }, + "glusterfs": { + "description": "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", + "$ref": "#/definitions/v1.GlusterfsVolumeSource" + }, + "hostPath": { + "description": "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "$ref": "#/definitions/v1.HostPathVolumeSource" + }, + "iscsi": { + "description": "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", + "$ref": "#/definitions/v1.ISCSIVolumeSource" + }, + "nfs": { + "description": "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "$ref": "#/definitions/v1.NFSVolumeSource" + }, + "persistentVolumeClaim": { + "description": "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "$ref": "#/definitions/v1.PersistentVolumeClaimVolumeSource" + }, + "photonPersistentDisk": { + "description": "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", + "$ref": "#/definitions/v1.PhotonPersistentDiskVolumeSource" + }, + "portworxVolume": { + "description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/v1.PortworxVolumeSource" + }, + "projected": { + "description": "projected items for all in one resources secrets, configmaps, and downward API", + "$ref": "#/definitions/v1.ProjectedVolumeSource" + }, + "quobyte": { + "description": "quobyte represents a Quobyte mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/v1.QuobyteVolumeSource" + }, + "rbd": { + "description": "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", + "$ref": "#/definitions/v1.RBDVolumeSource" + }, + "scaleIO": { + "description": "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", + "$ref": "#/definitions/v1.ScaleIOVolumeSource" + }, + "secret": { + "description": "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "$ref": "#/definitions/v1.SecretVolumeSource" + }, + "storageos": { + "description": "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", + "$ref": "#/definitions/v1.StorageOSVolumeSource" + }, + "vsphereVolume": { + "description": "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/v1.VsphereVirtualDiskVolumeSource" + } + } + }, + "v1.VsphereVirtualDiskVolumeSource": { + "description": "Represents a vSphere volume resource.", + "required": [ + "volumePath" + ], + "properties": { + "fsType": { + "description": "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "storagePolicyID": { + "description": "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", + "type": "string" + }, + "storagePolicyName": { + "description": "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", + "type": "string" + }, + "volumePath": { + "description": "volumePath is the path that identifies vSphere volume vmdk", + "type": "string" + } + } + }, + "v1.WindowsSecurityContextOptions": { + "description": "WindowsSecurityContextOptions contain Windows-specific options and credentials.", + "properties": { + "gmsaCredentialSpec": { + "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", + "type": "string" + }, + "gmsaCredentialSpecName": { + "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.", + "type": "string" + }, + "hostProcess": { + "description": "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", + "type": "boolean" + }, + "runAsUserName": { + "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "type": "string" + } + } + }, + "validation.AppNameValidity": { + "required": [ + "valid" + ], + "properties": { + "valid": { + "type": "boolean" + } + } + }, + "validation.AppNameValiditySpec": { + "required": [ + "name", + "namespace" + ], + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + } + } + }, + "validation.ImageReferenceValidity": { + "required": [ + "valid", + "reason" + ], + "properties": { + "reason": { + "type": "string" + }, + "valid": { + "type": "boolean" + } + } + }, + "validation.ImageReferenceValiditySpec": { + "required": [ + "reference" + ], + "properties": { + "reference": { + "type": "string" + } + } + }, + "validation.ProtocolValidity": { + "required": [ + "valid" + ], + "properties": { + "valid": { + "type": "boolean" + } + } + }, + "validation.ProtocolValiditySpec": { + "required": [ + "protocol", + "isExternal" + ], + "properties": { + "isExternal": { + "type": "boolean" + }, + "protocol": { + "type": "string" + } + } + } + } +} \ No newline at end of file diff --git a/modules/web/.gitignore b/modules/web/.gitignore index 941f5e32d993..007ad4116bfc 100644 --- a/modules/web/.gitignore +++ b/modules/web/.gitignore @@ -31,3 +31,6 @@ node_modules/ !.yarn/releases !.yarn/sdks !.yarn/versions + +# GraphQL mesh +.mesh/ diff --git a/modules/web/.meshrc.yml b/modules/web/.meshrc.yml new file mode 100644 index 000000000000..49f4a2cefabe --- /dev/null +++ b/modules/web/.meshrc.yml @@ -0,0 +1,19 @@ +# Copyright 2017 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +sources: + - name: api + handler: + openapi: + source: ../api/schema/swagger.json diff --git a/modules/web/Makefile b/modules/web/Makefile index d7745261292e..7fde38051348 100644 --- a/modules/web/Makefile +++ b/modules/web/Makefile @@ -77,6 +77,15 @@ test-go: @echo "[$(APP_NAME)] Running tests" @go test $(PACKAGE_NAME)/... +.PHONY: schema +schema: + @echo "[$(APP_NAME)] Generating GraphQL schema" + @npx graphql-mesh build --fileType json + @chmod +rwx .mesh/schema.graphql + @mv .mesh/schema.graphql $(SCHEMA_DIRECTORY)/schema.graphql + @rm -rf .mesh + @echo "[$(APP_NAME)] GraphQL schema generated successfully" + # ==================== PRIVATE ==================== # # Avoid locale caching due to the same output file naming diff --git a/modules/web/hack/include/config.mk b/modules/web/hack/include/config.mk index ca3be78e4725..bebf347f8cf1 100644 --- a/modules/web/hack/include/config.mk +++ b/modules/web/hack/include/config.mk @@ -6,6 +6,7 @@ PACKAGE_NAME := k8s.io/$(PROJECT_NAME)/web WEB_DIST_DIRECTORY = $(WEB_DIRECTORY)/.dist WEB_DIST_ANGULAR_DIRECTORY = $(WEB_DIST_DIRECTORY)/public COVERAGE_FILE = $(TMP_DIRECTORY)/$(APP_NAME).coverage.out +SCHEMA_DIRECTORY = $(WEB_DIRECTORY)/schema # Angular Serve Arguments PROXY_CONFIG ?= proxy.conf.json diff --git a/modules/web/package.json b/modules/web/package.json index bfb256d81266..232af404ed5a 100644 --- a/modules/web/package.json +++ b/modules/web/package.json @@ -93,6 +93,9 @@ "@babel/preset-env": "7.24.0", "@babel/register": "7.23.7", "@cypress/webpack-preprocessor": "6.0.1", + "@graphql-mesh/cli": "0.89.0", + "@graphql-mesh/openapi": "0.99.2", + "@graphql-mesh/runtime": "0.98.0", "@types/d3": "7.4.3", "@types/d3-scale": "4.0.8", "@types/file-saver": "2.0.7", @@ -115,6 +118,7 @@ "eslint-plugin-prettier": "5.1.3", "eslint-plugin-rxjs": "5.0.3", "git-describe": "4.1.1", + "graphql": "16.8.1", "husky": "9.0.11", "jasmine-core": "5.1.2", "jasmine-spec-reporter": "7.0.0", diff --git a/modules/web/schema/schema.graphql b/modules/web/schema/schema.graphql new file mode 100755 index 000000000000..c0f365777884 --- /dev/null +++ b/modules/web/schema/schema.graphql @@ -0,0 +1,5739 @@ +# Copyright 2017 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +schema @transport(subgraph: "api", kind: "rest") { + query: Query + mutation: Mutation +} + +directive @dictionary(subgraph: String) on FIELD_DEFINITION + +directive @httpOperation(subgraph: String, path: String, operationSpecificHeaders: ObjMap, httpMethod: HTTPMethod, isBinary: Boolean, requestBaseBody: ObjMap, queryParamArgMap: ObjMap, queryStringOptionsByParam: ObjMap, jsonApiFields: Boolean) on FIELD_DEFINITION + +directive @transport(subgraph: String, kind: String, location: String, headers: ObjMap, queryStringOptions: ObjMap, queryParams: ObjMap) on OBJECT + +type Query { + """returns unstructured resource from a namespace""" + handleGetResource( + """kind of the resource""" + kind: String! + """name of the resource""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the resource""" + namespace: String! + ): unstructured_Unstructured @httpOperation(subgraph: "api", path: "/api/v1/_raw/{args.kind}/name/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/_raw/{args.kind}/namespace/{args.namespace}/name/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of available protocols for the service""" + handleGetAvailableProtocols( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): deployment_Protocols @httpOperation(subgraph: "api", path: "/api/v1/appdeployment/protocols", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of ClusterRoles""" + handleGetClusterRoleList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): clusterrole_ClusterRoleList @httpOperation(subgraph: "api", path: "/api/v1/clusterrole", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about ClusterRole""" + handleGetClusterRoleDetail( + """name of the ClusterRole""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): clusterrole_ClusterRoleDetail @httpOperation(subgraph: "api", path: "/api/v1/clusterrole/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of ClusterRoleBindings""" + handleGetClusterRoleBindingList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): clusterrolebinding_ClusterRoleBindingList @httpOperation(subgraph: "api", path: "/api/v1/clusterrolebinding", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about ClusterRoleBinding""" + handleGetClusterRoleBindingDetail( + """name of the ClusterRoleBinding""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): clusterrolebinding_ClusterRoleBindingDetail @httpOperation(subgraph: "api", path: "/api/v1/clusterrolebinding/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of ConfigMaps in a namespaces""" + handleGetConfigMapList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the ConfigMap""" + namespace: String! + ): configmap_ConfigMapList @httpOperation(subgraph: "api", path: "/api/v1/configmap", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/configmap/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about ConfigMap""" + handleGetConfigMapDetail( + """namespace of the ConfigMap""" + namespace: String! + """name of the ConfigMap""" + configmap: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): configmap_ConfigMapDetail @httpOperation(subgraph: "api", path: "/api/v1/configmap/{args.namespace}/{args.configmap}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of CustomResourceDefinition""" + handleGetCustomResourceDefinitionList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): types_CustomResourceDefinitionList @httpOperation(subgraph: "api", path: "/api/v1/crd", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about CustomResourceDefinition""" + handleGetCustomResourceDefinitionDetail( + """name of the CustomResourceDefinition""" + crd: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): types_CustomResourceDefinitionDetail @httpOperation(subgraph: "api", path: "/api/v1/crd/{args.crd}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of objects of CustomResourceDefinition""" + handleGetCustomResourceObjectList( + """namespace of the custom resource""" + namespace: String! + """name of the CustomResourceDefinition""" + crd: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): types_CustomResourceObjectList @httpOperation(subgraph: "api", path: "/api/v1/crd/{args.namespace}/{args.crd}/object", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about custom resource object""" + handleGetCustomResourceObjectDetail( + """namespace of the custom resource""" + namespace: String! + """name of the CustomResourceDefinition""" + crd: String! + """name of the custom resource object""" + object: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): types_CustomResourceObjectDetail @httpOperation(subgraph: "api", path: "/api/v1/crd/{args.namespace}/{args.crd}/{args.object}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns Events for custom resource object""" + handleGetCustomResourceObjectEvents( + """namespace of the custom resource""" + namespace: String! + """name of the CustomResourceDefinition""" + crd: String! + """name of the custom resource object""" + object: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/crd/{args.namespace}/{args.crd}/{args.object}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of CronJobs in a namespaces""" + handleGetCronJobList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the CronJob""" + namespace: String! + ): cronjob_CronJobList @httpOperation(subgraph: "api", path: "/api/v1/cronjob", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/cronjob/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about CronJob""" + handleGetCronJobDetail( + """namespace of the CronJob""" + namespace: String! + """name of the CronJob""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): cronjob_CronJobDetail @httpOperation(subgraph: "api", path: "/api/v1/cronjob/{args.namespace}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for CronJob""" + handleGetCronJobEvents( + """namespace of the CronJob""" + namespace: String! + """name of the CronJob""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/cronjob/{args.namespace}/{args.name}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Jobs for CronJob""" + handleGetCronJobJobs( + """namespace of the CronJob""" + namespace: String! + """name of the CronJob""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): job_JobList @httpOperation(subgraph: "api", path: "/api/v1/cronjob/{args.namespace}/{args.name}/job", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """generates a one-time CSRF token that can be used by POST request""" + handleGetCsrfToken( + """action name to generate CSRF token for""" + action: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): csrf_Response @httpOperation(subgraph: "api", path: "/api/v1/csrftoken/{args.action}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of DaemonSets in a namespaces""" + handleGetDaemonSetList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the DaemonSet""" + namespace: String! + ): daemonset_DaemonSetList @httpOperation(subgraph: "api", path: "/api/v1/daemonset", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/daemonset/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about DaemonSet""" + handleGetDaemonSetDetail( + """namespace of the DaemonSet""" + namespace: String! + """name of the DaemonSet""" + daemonSet: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): daemonset_DaemonSetDetail @httpOperation(subgraph: "api", path: "/api/v1/daemonset/{args.namespace}/{args.daemonSet}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for DaemonSet""" + handleGetDaemonSetEvents( + """namespace of the DaemonSet""" + namespace: String! + """name of the DaemonSet""" + daemonSet: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/daemonset/{args.namespace}/{args.daemonSet}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Pods for DaemonSet""" + handleGetDaemonSetPods( + """namespace of the DaemonSet""" + namespace: String! + """name of the DaemonSet""" + daemonSet: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodList @httpOperation(subgraph: "api", path: "/api/v1/daemonset/{args.namespace}/{args.daemonSet}/pod", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Services for DaemonSet""" + handleGetDaemonSetServices( + """namespace of the DaemonSet""" + namespace: String! + """name of the DaemonSet""" + daemonSet: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): service_ServiceList @httpOperation(subgraph: "api", path: "/api/v1/daemonset/{args.namespace}/{args.daemonSet}/service", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Deployments in a namespaces""" + handleGetDeployments( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the Deployment""" + namespace: String! + ): deployment_DeploymentList @httpOperation(subgraph: "api", path: "/api/v1/deployment", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/deployment/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about Deployment""" + handleGetDeploymentDetail( + """namespace of the Deployment""" + namespace: String! + """name of the Deployment""" + deployment: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): deployment_DeploymentDetail @httpOperation(subgraph: "api", path: "/api/v1/deployment/{args.namespace}/{args.deployment}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for Deployment""" + handleGetDeploymentEvents( + """namespace of the Deployment""" + namespace: String! + """name of the Deployment""" + deployment: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/deployment/{args.namespace}/{args.deployment}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of new ReplicaSets for Deployment""" + handleGetDeploymentNewReplicaSet( + """namespace of the Deployment""" + namespace: String! + """name of the Deployment""" + deployment: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): replicaset_ReplicaSet @httpOperation(subgraph: "api", path: "/api/v1/deployment/{args.namespace}/{args.deployment}/newreplicaset", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of old ReplicaSets for Deployment""" + handleGetDeploymentOldReplicaSets( + """namespace of the Deployment""" + namespace: String! + """name of the Deployment""" + deployment: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): replicaset_ReplicaSetList @httpOperation(subgraph: "api", path: "/api/v1/deployment/{args.namespace}/{args.deployment}/oldreplicaset", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events in a namespace""" + handleGetEventList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace to get Events from""" + namespace: String! + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/event/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of HorizontalPodAutoscalers in a namespaces""" + handleGetHorizontalPodAutoscalerList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the HorizontalPodAutoscaler""" + namespace: String! + ): horizontalpodautoscaler_HorizontalPodAutoscalerList @httpOperation(subgraph: "api", path: "/api/v1/horizontalpodautoscaler", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/horizontalpodautoscaler/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about HorizontalPodAutoscaler""" + handleGetHorizontalPodAutoscalerDetail( + """namespace of the HorizontalPodAutoscaler""" + namespace: String! + """name of the HorizontalPodAutoscaler""" + horizontalpodautoscaler: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): horizontalpodautoscaler_HorizontalPodAutoscalerDetail @httpOperation(subgraph: "api", path: "/api/v1/horizontalpodautoscaler/{args.namespace}/{args.horizontalpodautoscaler}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Ingresses in a namespaces""" + handleGetIngressList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the Ingress""" + namespace: String! + ): ingress_IngressList @httpOperation(subgraph: "api", path: "/api/v1/ingress", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/ingress/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for Ingress""" + handleGetIngressEvent( + """namespace of the Ingress""" + namespace: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/ingress/{args.namespace}/{ingress}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about Ingress""" + handleGetIngressDetail( + """namespace of the Ingress""" + namespace: String! + """name of the Ingress""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): ingress_IngressDetail @httpOperation(subgraph: "api", path: "/api/v1/ingress/{args.namespace}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of IngressClasses""" + handleGetIngressClassList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): ingressclass_IngressClassList @httpOperation(subgraph: "api", path: "/api/v1/ingressclass", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about IngressClass""" + handleGetIngressClass( + """name of the IngressClass""" + ingressclass: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): ingressclass_IngressClass @httpOperation(subgraph: "api", path: "/api/v1/ingressclass/{args.ingressclass}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + handleGetState( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): JSON @httpOperation(subgraph: "api", path: "/api/v1/integration/{name}/state", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Jobs in a namespaces""" + handleGetJobList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the Job""" + namespace: String! + ): job_JobList @httpOperation(subgraph: "api", path: "/api/v1/job", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/job/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about Job""" + handleGetJobDetail( + """namespace of the Job""" + namespace: String! + """name of the Job""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): job_JobDetail @httpOperation(subgraph: "api", path: "/api/v1/job/{args.namespace}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for Job""" + handleGetJobEvents( + """namespace of the Job""" + namespace: String! + """name of the Job""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/job/{args.namespace}/{args.name}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Pods for Job""" + handleGetJobPods( + """namespace of the Job""" + namespace: String! + """name of the Job""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodList @httpOperation(subgraph: "api", path: "/api/v1/job/{args.namespace}/{args.name}/pod", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a text file with logs from a Container""" + handleLogFile( + """namespace of the Pod""" + namespace: String! + """name of the Pod""" + pod: String! + """name of container in the Pod""" + container: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): [Int] @httpOperation(subgraph: "api", path: "/api/v1/log/file/{args.namespace}/{args.pod}/{args.container}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns log sources for a resource""" + handleLogSource( + """namespace of the resource""" + namespace: String! + """name of the resource""" + resourceName: String! + """type of the resource""" + resourceType: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): controller_LogSources @httpOperation(subgraph: "api", path: "/api/v1/log/source/{args.namespace}/{args.resourceName}/{args.resourceType}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns logs from a Container""" + handleLogs( + """namespace of the Pod""" + namespace: String! + """name of the Pod""" + pod: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """name of container in the Pod""" + container: String! + ): logs_LogDetails @httpOperation(subgraph: "api", path: "/api/v1/log/{args.namespace}/{args.pod}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/log/{args.namespace}/{args.pod}/{args.container}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Namespaces""" + handleGetNamespaces( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): namespace_NamespaceList @httpOperation(subgraph: "api", path: "/api/v1/namespace", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about Namespace""" + handleGetNamespaceDetail( + """name of the Namespace""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): namespace_NamespaceDetail @httpOperation(subgraph: "api", path: "/api/v1/namespace/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for Namespace""" + handleGetNamespaceEvents( + """name of the Namespace""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/namespace/{args.name}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of NetworkPolicies in a namespaces""" + handleGetNetworkPolicyList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the NetworkPolicy""" + namespace: String! + ): networkpolicy_NetworkPolicyList @httpOperation(subgraph: "api", path: "/api/v1/networkpolicy", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/networkpolicy/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about NetworkPolicy""" + handleGetNetworkPolicyDetail( + """namespace of the NetworkPolicy""" + namespace: String! + """name of the NetworkPolicy""" + networkpolicy: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): networkpolicy_NetworkPolicyDetail @httpOperation(subgraph: "api", path: "/api/v1/networkpolicy/{args.namespace}/{args.networkpolicy}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Nodes""" + handleGetNodeList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): node_NodeList @httpOperation(subgraph: "api", path: "/api/v1/node", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about Node""" + handleGetNodeDetail( + """name of the Node""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): node_NodeDetail @httpOperation(subgraph: "api", path: "/api/v1/node/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for Node""" + handleGetNodeEvents( + """name of the Node""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/node/{args.name}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Pods for Node""" + handleGetNodePods( + """name of the Node""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodList @httpOperation(subgraph: "api", path: "/api/v1/node/{args.name}/pod", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of PersistentVolumes from all namespaces""" + handleGetPersistentVolumeList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): persistentvolume_PersistentVolumeList @httpOperation(subgraph: "api", path: "/api/v1/persistentvolume", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about PersistentVolume""" + handleGetPersistentVolumeDetail( + """name of the PersistentVolume""" + persistentvolume: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): persistentvolume_PersistentVolumeDetail @httpOperation(subgraph: "api", path: "/api/v1/persistentvolume/namespace/{namespace}/name/{args.persistentvolume}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/persistentvolume/{args.persistentvolume}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of PersistentVolumeClaim from specified namespace""" + handleGetPersistentVolumeClaimList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the PersistentVolumeClaim""" + namespace: String! + ): persistentvolumeclaim_PersistentVolumeClaimList @httpOperation(subgraph: "api", path: "/api/v1/persistentvolumeclaim", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/persistentvolumeclaim/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about PersistentVolumeClaim""" + handleGetPersistentVolumeClaimDetail( + """namespace of the PersistentVolumeClaim""" + namespace: String! + """name of the PersistentVolumeClaim""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): persistentvolumeclaim_PersistentVolumeClaimDetail @httpOperation(subgraph: "api", path: "/api/v1/persistentvolumeclaim/{args.namespace}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Pods in a namespaces""" + handleGetPods( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the Pod""" + namespace: String! + ): pod_PodList @httpOperation(subgraph: "api", path: "/api/v1/pod", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/pod/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about Pod""" + handleGetPodDetail( + """namespace of the Pod""" + namespace: String! + """name of the Pod""" + pod: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodDetail @httpOperation(subgraph: "api", path: "/api/v1/pod/{args.namespace}/{args.pod}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of containers for Pod""" + handleGetPodContainers( + """namespace of the Pod""" + namespace: String! + """name of the Pod""" + pod: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodDetail @httpOperation(subgraph: "api", path: "/api/v1/pod/{args.namespace}/{args.pod}/container", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for Pod""" + handleGetPodEvents( + """namespace of the Pod""" + namespace: String! + """name of the Pod""" + pod: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/pod/{args.namespace}/{args.pod}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of containers for Pod""" + handleGetPodPersistentVolumeClaims( + """namespace of the Pod""" + namespace: String! + """name of the Pod""" + pod: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): persistentvolumeclaim_PersistentVolumeClaimList @httpOperation(subgraph: "api", path: "/api/v1/pod/{args.namespace}/{args.pod}/persistentvolumeclaim", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """handles exec into pod""" + handleExecShell( + """namespace of the Pod""" + namespace: String! + """name of the Pod""" + pod: String! + """name of container in the Pod""" + container: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): handler_TerminalResponse @httpOperation(subgraph: "api", path: "/api/v1/pod/{args.namespace}/{args.pod}/shell/{args.container}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of ReplicaSets in a namespace""" + handleGetReplicaSets( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the ReplicaSets""" + namespace: String! + ): replicaset_ReplicaSetList @httpOperation(subgraph: "api", path: "/api/v1/replicaset", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/replicaset/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about ReplicaSet""" + handleGetReplicaSetDetail( + """namespace of the ReplicaSet""" + namespace: String! + """name of the ReplicaSets""" + replicaSet: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): replicaset_ReplicaSetDetail @httpOperation(subgraph: "api", path: "/api/v1/replicaset/{args.namespace}/{args.replicaSet}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for ReplicaSet""" + handleGetReplicaSetEvents( + """namespace of the ReplicaSet""" + namespace: String! + """name of the ReplicaSets""" + replicaSet: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/replicaset/{args.namespace}/{args.replicaSet}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Pods for ReplicaSet""" + handleGetReplicaSetPods( + """namespace of the ReplicaSet""" + namespace: String! + """name of the ReplicaSets""" + replicaSet: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodList @httpOperation(subgraph: "api", path: "/api/v1/replicaset/{args.namespace}/{args.replicaSet}/pod", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Services for ReplicaSet""" + handleGetReplicaSetServices( + """namespace of the ReplicaSet""" + namespace: String! + """name of the ReplicaSets""" + replicaSet: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodList @httpOperation(subgraph: "api", path: "/api/v1/replicaset/{args.namespace}/{args.replicaSet}/service", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of ReplicationController in a namespace""" + handleGetReplicationControllerList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace to get a list of ReplicationController from""" + namespace: String! + ): replicationcontroller_ReplicationControllerList @httpOperation(subgraph: "api", path: "/api/v1/replicationcontroller", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/replicationcontroller/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about ReplicationController""" + handleGetReplicationControllerDetail( + """namespace of the ReplicationController""" + namespace: String! + """name of the ReplicationController""" + replicationController: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): replicationcontroller_ReplicationControllerDetail @httpOperation(subgraph: "api", path: "/api/v1/replicationcontroller/{args.namespace}/{args.replicationController}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for ReplicationController""" + handleGetReplicationControllerEvents( + """namespace of the ReplicationController""" + namespace: String! + """name of the ReplicationController""" + replicationController: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/replicationcontroller/{args.namespace}/{args.replicationController}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Pods for ReplicationController""" + handleGetReplicationControllerPods( + """namespace of the ReplicationController""" + namespace: String! + """name of the ReplicationController""" + replicationController: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodList @httpOperation(subgraph: "api", path: "/api/v1/replicationcontroller/{args.namespace}/{args.replicationController}/pod", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Services for ReplicationController""" + handleGetReplicationControllerServices( + """namespace of the ReplicationController""" + namespace: String! + """name of the ReplicationController""" + replicationController: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): service_ServiceList @httpOperation(subgraph: "api", path: "/api/v1/replicationcontroller/{args.namespace}/{args.replicationController}/service", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Roles in a namespace""" + handleGetRoleList( + """namespace of the Role""" + namespace: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): role_RoleList @httpOperation(subgraph: "api", path: "/api/v1/role/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about Role""" + handleGetRoleDetail( + """namespace of the Role""" + namespace: String! + """name of the Role""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): role_RoleDetail @httpOperation(subgraph: "api", path: "/api/v1/role/{args.namespace}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of RoleBindings in a namespace""" + handleGetRoleBindingList( + """namespace of the RoleBinding""" + namespace: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): rolebinding_RoleBindingList @httpOperation(subgraph: "api", path: "/api/v1/rolebinding/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about RoleBinding""" + handleGetRoleBindingDetail( + """namespace of the RoleBinding""" + namespace: String! + """name of the RoleBinding""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): rolebinding_RoleBindingDetail @httpOperation(subgraph: "api", path: "/api/v1/rolebinding/{args.namespace}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a number of replicas of non-namespaced resource""" + handleGetReplicaCount( + """kind of the resource""" + kind: String! + """namespace of the resource""" + namespace: String! + """name of the resource""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): scaling_ReplicaCounts @httpOperation(subgraph: "api", path: "/api/v1/scale/{args.kind}/{args.namespace}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/scale/{args.kind}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Secrets in a namespace""" + handleGetSecretList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the Secret""" + namespace: String! + ): secret_SecretList @httpOperation(subgraph: "api", path: "/api/v1/secret", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/secret/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about Secret""" + handleGetSecretDetail( + """namespace of the Secret""" + namespace: String! + """name of the Secret""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): secret_SecretDetail @httpOperation(subgraph: "api", path: "/api/v1/secret/{args.namespace}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Services in a namespace""" + handleGetServiceList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the Service""" + namespace: String! + ): service_ServiceList @httpOperation(subgraph: "api", path: "/api/v1/service", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/service/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about Service""" + handleGetServiceDetail( + """namespace of the Service""" + namespace: String! + """name of the Service""" + service: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): service_ServiceDetail @httpOperation(subgraph: "api", path: "/api/v1/service/{args.namespace}/{args.service}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for Service""" + handleGetServiceEvent( + """namespace of the Service""" + namespace: String! + """name of the Service""" + service: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/service/{args.namespace}/{args.service}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Ingresses for Service""" + handleGetServiceIngressList( + """namespace of the Service""" + namespace: String! + """name of the Service""" + service: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): ingress_IngressList @httpOperation(subgraph: "api", path: "/api/v1/service/{args.namespace}/{args.service}/ingress", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Pods for Service""" + handleGetServicePods( + """namespace of the Service""" + namespace: String! + """name of the Service""" + service: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodList @httpOperation(subgraph: "api", path: "/api/v1/service/{args.namespace}/{args.service}/pod", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of ServiceAccounts in a namespaces""" + handleGetServiceAccountList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the ServiceAccount""" + namespace: String! + ): serviceaccount_ServiceAccountList @httpOperation(subgraph: "api", path: "/api/v1/serviceaccount", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/serviceaccount/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about ServiceAccount""" + handleGetServiceAccountDetail( + """namespace of the ServiceAccount""" + namespace: String! + """name of the ServiceAccount""" + serviceaccount: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): serviceaccount_ServiceAccountDetail @httpOperation(subgraph: "api", path: "/api/v1/serviceaccount/{args.namespace}/{args.serviceaccount}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of ImagePullSecret Secrets for ServiceAccount""" + handleGetServiceAccountImagePullSecrets( + """namespace of the ServiceAccount""" + namespace: String! + """name of the ServiceAccount""" + serviceaccount: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): secret_SecretList @httpOperation(subgraph: "api", path: "/api/v1/serviceaccount/{args.namespace}/{args.serviceaccount}/imagepullsecret", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Secrets for ServiceAccount""" + handleGetServiceAccountSecrets( + """namespace of the ServiceAccount""" + namespace: String! + """name of the ServiceAccount""" + serviceaccount: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): secret_SecretList @httpOperation(subgraph: "api", path: "/api/v1/serviceaccount/{args.namespace}/{args.serviceaccount}/secret", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of StatefulSets in a namespaces""" + handleGetStatefulSetList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the StatefulSet""" + namespace: String! + ): statefulset_StatefulSetList @httpOperation(subgraph: "api", path: "/api/v1/statefulset", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/statefulset/{args.namespace}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about StatefulSets""" + handleGetStatefulSetDetail( + """namespace of the StatefulSet""" + namespace: String! + """name of the StatefulSet""" + statefulset: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): statefulset_StatefulSetDetail @httpOperation(subgraph: "api", path: "/api/v1/statefulset/{args.namespace}/{args.statefulset}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Events for StatefulSets""" + handleGetStatefulSetEvents( + """namespace of the StatefulSet""" + namespace: String! + """name of the StatefulSet""" + statefulset: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): common_EventList @httpOperation(subgraph: "api", path: "/api/v1/statefulset/{args.namespace}/{args.statefulset}/event", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of Pods for StatefulSets""" + handleGetStatefulSetPods( + """namespace of the StatefulSet""" + namespace: String! + """name of the StatefulSet""" + statefulset: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): pod_PodList @httpOperation(subgraph: "api", path: "/api/v1/statefulset/{args.namespace}/{args.statefulset}/pod", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of StorageClasses""" + handleGetStorageClassList( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): storageclass_StorageClassList @httpOperation(subgraph: "api", path: "/api/v1/storageclass", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns detailed information about StorageClass""" + handleGetStorageClass( + """name of the StorageClass""" + storageclass: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): storageclass_StorageClass @httpOperation(subgraph: "api", path: "/api/v1/storageclass/{args.storageclass}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of PersistentVolumes assigned to StorageClass""" + handleGetStorageClassPersistentVolumes( + """name of the StorageClass""" + storageclass: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): persistentvolume_PersistentVolumeList @httpOperation(subgraph: "api", path: "/api/v1/storageclass/{args.storageclass}/persistentvolume", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """returns a list of HorizontalPodAutoscalers for resource""" + handleGetHorizontalPodAutoscalerListForResource( + """kind of the resource to get HorizontalPodAutoscalers for""" + kind: String! + """namespace of the resource to get HorizontalPodAutoscalers for""" + namespace: String! + """name of the resource to get HorizontalPodAutoscalers for""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): horizontalpodautoscaler_HorizontalPodAutoscalerList @httpOperation(subgraph: "api", path: "/api/v1/{args.kind}/{args.namespace}/{args.name}/horizontalpodautoscaler", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: GET, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") +} + +type unstructured_Unstructured { + Object: JSON! +} + +""" +The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +""" +scalar JSON @specifiedBy(url: "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf") + +type deployment_Protocols { + protocols: [String]! +} + +type clusterrole_ClusterRoleList { + errors: [JSON]! + items: [clusterrole_ClusterRole]! + listMeta: types_ListMeta! +} + +type clusterrole_ClusterRole { + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type types_ObjectMeta { + annotations: JSON + creationTimestamp: String + labels: JSON + name: String + namespace: String + uid: String +} + +type types_TypeMeta { + kind: String + restartable: Boolean + scalable: Boolean +} + +type types_ListMeta { + totalItems: Int! +} + +type clusterrole_ClusterRoleDetail { + errors: [JSON]! + objectMeta: types_ObjectMeta! + rules: [v1_PolicyRule]! + typeMeta: types_TypeMeta! +} + +""" +PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to. +""" +type v1_PolicyRule { + """ + APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. "" represents the core API group and "*" represents all API groups. + """ + apiGroups: [String] + """ + NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both. + """ + nonResourceURLs: [String] + """ + ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. + """ + resourceNames: [String] + """ + Resources is a list of resources this rule applies to. '*' represents all resources. + """ + resources: [String] + """ + Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs. + """ + verbs: [String]! +} + +type clusterrolebinding_ClusterRoleBindingList { + errors: [JSON]! + items: [clusterrolebinding_ClusterRoleBinding]! + listMeta: types_ListMeta! +} + +type clusterrolebinding_ClusterRoleBinding { + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type clusterrolebinding_ClusterRoleBindingDetail { + errors: [JSON]! + objectMeta: types_ObjectMeta! + roleRef: v1_RoleRef! + subjects: [v1_Subject] + typeMeta: types_TypeMeta! +} + +"""RoleRef contains information that points to the role being used""" +type v1_RoleRef { + """APIGroup is the group for the resource being referenced""" + apiGroup: String! + """Kind is the type of resource being referenced""" + kind: String! + """Name is the name of resource being referenced""" + name: String! +} + +""" +Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names. +""" +type v1_Subject { + """ + APIGroup holds the API group of the referenced subject. Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + """ + apiGroup: String + """ + Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". If the Authorizer does not recognized the kind value, the Authorizer should report an error. + """ + kind: String! + """Name of the object being referenced.""" + name: String! + """ + Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error. + """ + namespace: String +} + +type configmap_ConfigMapList { + errors: [JSON]! + items: [configmap_ConfigMap]! + listMeta: types_ListMeta! +} + +type configmap_ConfigMap { + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type configmap_ConfigMapDetail { + data: JSON + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type types_CustomResourceDefinitionList { + errors: [JSON]! + items: [types_CustomResourceDefinition]! + listMeta: types_ListMeta! +} + +type types_CustomResourceDefinition { + established: String! + group: String! + names: types_CustomResourceDefinitionNames! + objectMeta: types_ObjectMeta! + scope: String! + typeMeta: types_TypeMeta! + version: String +} + +type types_CustomResourceDefinitionNames { + categories: [String] + kind: String! + listKind: String + plural: String! + shortNames: [String] + singular: String +} + +type types_CustomResourceDefinitionDetail { + conditions: [common_Condition]! + errors: [JSON]! + established: String! + group: String! + names: types_CustomResourceDefinitionNames! + objectMeta: types_ObjectMeta! + objects: types_CustomResourceObjectList! + scope: String! + subresources: [String]! + typeMeta: types_TypeMeta! + version: String + versions: [types_CustomResourceDefinitionVersion] +} + +type common_Condition { + lastProbeTime: String! + lastTransitionTime: String! + message: String! + reason: String! + status: String! + type: String! +} + +type types_CustomResourceObjectList { + errors: [JSON]! + items: [types_CustomResourceObject]! + listMeta: types_ListMeta! + typeMeta: v1_TypeMeta! +} + +type types_CustomResourceObject { + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +""" +TypeMeta describes an individual object in an API response or request with strings representing the type of the object and its API schema version. Structures that are versioned or persisted should inline TypeMeta. +""" +type v1_TypeMeta { + """ + 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 + """ + apiVersion: String + """ + 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 + """ + kind: String +} + +type types_CustomResourceDefinitionVersion { + name: String! + served: Boolean! + storage: Boolean! +} + +type types_CustomResourceObjectDetail { + errors: [JSON]! + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type common_EventList { + errors: [JSON]! + events: [common_Event]! + listMeta: types_ListMeta! +} + +type common_Event { + count: Int! + firstSeen: String! + lastSeen: String! + message: String! + object: String! + objectKind: String + objectMeta: types_ObjectMeta! + objectName: String + objectNamespace: String + reason: String! + sourceComponent: String! + sourceHost: String! + type: String! + typeMeta: types_TypeMeta! +} + +type cronjob_CronJobList { + cumulativeMetrics: [api_Metric]! + errors: [JSON]! + items: [cronjob_CronJob]! + listMeta: types_ListMeta! + status: common_ResourceStatus! +} + +type api_Metric { + aggregation: String + dataPoints: [api_DataPoint]! + metricName: String! + metricPoints: [api_MetricPoint]! +} + +type api_DataPoint { + x: BigInt! + y: BigInt! +} + +""" +The `BigInt` scalar type represents non-fractional signed whole numeric values. +""" +scalar BigInt + +type api_MetricPoint { + timestamp: DateTime! + value: Int! +} + +""" +A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. +""" +scalar DateTime + +type cronjob_CronJob { + active: Int! + containerImages: [String]! + lastSchedule: String! + objectMeta: types_ObjectMeta! + schedule: String! + suspend: Boolean! + typeMeta: types_TypeMeta! +} + +type common_ResourceStatus { + failed: Int! + pending: Int! + running: Int! + succeeded: Int! + terminating: Int! +} + +type cronjob_CronJobDetail { + active: Int! + concurrencyPolicy: String! + containerImages: [String]! + errors: [JSON]! + lastSchedule: String! + objectMeta: types_ObjectMeta! + schedule: String! + startingDeadlineSeconds: BigInt! + suspend: Boolean! + typeMeta: types_TypeMeta! +} + +type job_JobList { + cumulativeMetrics: [api_Metric]! + errors: [JSON]! + jobs: [job_Job]! + listMeta: types_ListMeta! + status: common_ResourceStatus! +} + +type job_Job { + containerImages: [String]! + initContainerImages: [String]! + jobStatus: job_JobStatus! + objectMeta: types_ObjectMeta! + parallelism: Int! + podInfo: common_PodInfo! + typeMeta: types_TypeMeta! +} + +type job_JobStatus { + conditions: [common_Condition]! + message: String! + status: String! +} + +type common_PodInfo { + current: Int! + desired: Int + failed: Int! + pending: Int! + running: Int! + succeeded: Int! + warnings: [common_Event]! +} + +type csrf_Response { + token: String! +} + +type daemonset_DaemonSetList { + cumulativeMetrics: [api_Metric]! + daemonSets: [daemonset_DaemonSet]! + errors: [JSON]! + listMeta: types_ListMeta! + status: common_ResourceStatus! +} + +type daemonset_DaemonSet { + containerImages: [String]! + initContainerImages: [String]! + objectMeta: types_ObjectMeta! + podInfo: common_PodInfo! + typeMeta: types_TypeMeta! +} + +type daemonset_DaemonSetDetail { + containerImages: [String]! + errors: [JSON]! + initContainerImages: [String]! + labelSelector: v1_LabelSelector + objectMeta: types_ObjectMeta! + podInfo: common_PodInfo! + typeMeta: types_TypeMeta! +} + +""" +A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. +""" +type v1_LabelSelector { + """ + matchExpressions is a list of label selector requirements. The requirements are ANDed. + """ + matchExpressions: [v1_LabelSelectorRequirement] + """ + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + """ + matchLabels: JSON +} + +""" +A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +""" +type v1_LabelSelectorRequirement { + """key is the label key that the selector applies to.""" + key: String! + """ + operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + """ + operator: String! + """ + values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + """ + values: [String] +} + +type pod_PodList { + cumulativeMetrics: [api_Metric]! + errors: [JSON]! + listMeta: types_ListMeta! + pods: [pod_Pod]! + status: common_ResourceStatus! +} + +type pod_Pod { + containerImages: [String]! + metrics: pod_PodMetrics! + nodeName: String! + objectMeta: types_ObjectMeta! + restartCount: Int! + status: String! + typeMeta: types_TypeMeta! + warnings: [common_Event]! +} + +type pod_PodMetrics { + cpuUsage: Int! + cpuUsageHistory: [api_MetricPoint]! + memoryUsage: Int! + memoryUsageHistory: [api_MetricPoint]! +} + +type service_ServiceList { + errors: [JSON]! + listMeta: types_ListMeta! + services: [service_Service]! +} + +type service_Service { + clusterIP: String! + externalEndpoints: [common_Endpoint]! + internalEndpoint: common_Endpoint! + objectMeta: types_ObjectMeta! + selector: JSON! + type: String! + typeMeta: types_TypeMeta! +} + +type common_Endpoint { + host: String! + ports: [common_ServicePort]! +} + +type common_ServicePort { + nodePort: Int! + port: Int! + protocol: String! +} + +type deployment_DeploymentList { + cumulativeMetrics: [api_Metric]! + deployments: [deployment_Deployment]! + errors: [JSON]! + listMeta: types_ListMeta! + status: common_ResourceStatus! +} + +type deployment_Deployment { + containerImages: [String]! + initContainerImages: [String]! + objectMeta: types_ObjectMeta! + pods: common_PodInfo! + typeMeta: types_TypeMeta! +} + +type deployment_DeploymentDetail { + conditions: [common_Condition]! + containerImages: [String]! + errors: [JSON]! + initContainerImages: [String]! + minReadySeconds: Int! + objectMeta: types_ObjectMeta! + pods: common_PodInfo! + revisionHistoryLimit: Int! + rollingUpdateStrategy: deployment_RollingUpdateStrategy + selector: JSON! + statusInfo: deployment_StatusInfo! + strategy: String! + typeMeta: types_TypeMeta! +} + +type deployment_RollingUpdateStrategy { + maxSurge: String! + maxUnavailable: String! +} + +type deployment_StatusInfo { + available: Int! + replicas: Int! + unavailable: Int! + updated: Int! +} + +type replicaset_ReplicaSet { + containerImages: [String]! + initContainerImages: [String]! + objectMeta: types_ObjectMeta! + podInfo: common_PodInfo! + typeMeta: types_TypeMeta! +} + +type replicaset_ReplicaSetList { + cumulativeMetrics: [api_Metric]! + errors: [JSON]! + listMeta: types_ListMeta! + replicaSets: [replicaset_ReplicaSet]! + status: common_ResourceStatus! +} + +type horizontalpodautoscaler_HorizontalPodAutoscalerList { + errors: [JSON]! + horizontalpodautoscalers: [horizontalpodautoscaler_HorizontalPodAutoscaler]! + listMeta: types_ListMeta! +} + +type horizontalpodautoscaler_HorizontalPodAutoscaler { + currentCPUUtilizationPercentage: Int! + maxReplicas: Int! + minReplicas: Int! + objectMeta: types_ObjectMeta! + scaleTargetRef: horizontalpodautoscaler_ScaleTargetRef! + targetCPUUtilizationPercentage: Int! + typeMeta: types_TypeMeta! +} + +type horizontalpodautoscaler_ScaleTargetRef { + kind: String! + name: String! +} + +type horizontalpodautoscaler_HorizontalPodAutoscalerDetail { + currentCPUUtilizationPercentage: Int! + currentReplicas: Int! + desiredReplicas: Int! + lastScaleTime: String! + maxReplicas: Int! + minReplicas: Int! + objectMeta: types_ObjectMeta! + scaleTargetRef: horizontalpodautoscaler_ScaleTargetRef! + targetCPUUtilizationPercentage: Int! + typeMeta: types_TypeMeta! +} + +type ingress_IngressList { + errors: [JSON]! + items: [ingress_Ingress]! + listMeta: types_ListMeta! +} + +type ingress_Ingress { + endpoints: [common_Endpoint]! + hosts: [String]! + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type ingress_IngressDetail { + endpoints: [common_Endpoint]! + errors: [JSON]! + hosts: [String]! + objectMeta: types_ObjectMeta! + spec: v1_IngressSpec! + status: v1_IngressStatus! + typeMeta: types_TypeMeta! +} + +"""IngressSpec describes the Ingress the user wishes to exist.""" +type v1_IngressSpec { + defaultBackend: v1_IngressBackend + """ + ingressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -> IngressClass -> Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present. + """ + ingressClassName: String + """ + rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend. + """ + rules: [v1_IngressRule] + """ + tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI. + """ + tls: [v1_IngressTLS] +} + +"""IngressBackend describes all endpoints for a given service and port.""" +type v1_IngressBackend { + resource: v1_TypedLocalObjectReference + service: v1_IngressServiceBackend +} + +""" +TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace. +""" +type v1_TypedLocalObjectReference { + """ + APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + """ + apiGroup: String! + """Kind is the type of resource being referenced""" + kind: String! + """Name is the name of resource being referenced""" + name: String! +} + +"""IngressServiceBackend references a Kubernetes Service as a Backend.""" +type v1_IngressServiceBackend { + """ + name is the referenced service. The service must exist in the same namespace as the Ingress object. + """ + name: String! + port: v1_ServiceBackendPort +} + +"""ServiceBackendPort is the service port being referenced.""" +type v1_ServiceBackendPort { + """ + name is the name of the port on the Service. This is a mutually exclusive setting with "Number". + """ + name: String + """ + number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with "Name". + """ + number: Int +} + +""" +IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue. +""" +type v1_IngressRule { + """ + host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the "host" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to + the IP in the Spec of the parent Ingress. + 2. The `:` delimiter is not respected because ports are not allowed. + Currently the port of an Ingress is implicitly :80 for http and + :443 for https. + Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue. + + host can be "precise" which is a domain name without the terminating dot of a network host (e.g. "foo.bar.com") or "wildcard", which is a domain name prefixed with a single wildcard label (e.g. "*.foo.com"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == "*"). Requests will be matched against the Host field in the following way: 1. If host is precise, the request matches this rule if the http host header is equal to Host. 2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule. + """ + host: String + http: v1_HTTPIngressRuleValue +} + +""" +HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http:///? -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'. +""" +type v1_HTTPIngressRuleValue { + """paths is a collection of paths that map requests to backends.""" + paths: [v1_HTTPIngressPath]! +} + +""" +HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend. +""" +type v1_HTTPIngressPath { + backend: v1_IngressBackend! + """ + path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value "Exact" or "Prefix". + """ + path: String + """ + pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is + done on a path element by element basis. A path element refers is the + list of labels in the path split by the '/' separator. A request is a + match for path p if every p is an element-wise prefix of p of the + request path. Note that if the last element of the path is a substring + of the last element in request path, it is not a match (e.g. /foo/bar + matches /foo/bar/baz, but does not match /foo/barbaz). + * ImplementationSpecific: Interpretation of the Path matching is up to + the IngressClass. Implementations can treat this as a separate PathType + or treat it identically to Prefix or Exact path types. + Implementations are required to support all path types. + """ + pathType: String! +} + +""" +IngressTLS describes the transport layer security associated with an ingress. +""" +type v1_IngressTLS { + """ + hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified. + """ + hosts: [String] + """ + secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the "Host" header field used by an IngressRule, the SNI host is used for termination and value of the "Host" header is used for routing. + """ + secretName: String +} + +"""IngressStatus describe the current state of the Ingress.""" +type v1_IngressStatus { + loadBalancer: v1_IngressLoadBalancerStatus +} + +"""IngressLoadBalancerStatus represents the status of a load-balancer.""" +type v1_IngressLoadBalancerStatus { + """ingress is a list containing ingress points for the load-balancer.""" + ingress: [v1_IngressLoadBalancerIngress] +} + +""" +IngressLoadBalancerIngress represents the status of a load-balancer ingress point. +""" +type v1_IngressLoadBalancerIngress { + """hostname is set for load-balancer ingress points that are DNS based.""" + hostname: String + """ip is set for load-balancer ingress points that are IP based.""" + ip: String + """ + ports provides information about the ports exposed by this LoadBalancer. + """ + ports: [v1_IngressPortStatus] +} + +"""IngressPortStatus represents the error condition of a service port""" +type v1_IngressPortStatus { + """ + error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use + CamelCase names + - cloud provider specific error values must have names that comply with the + format foo.example.com/CamelCase. + """ + error: String + """port is the port number of the ingress port.""" + port: Int! + """ + protocol is the protocol of the ingress port. The supported values are: "TCP", "UDP", "SCTP" + """ + protocol: String! +} + +type ingressclass_IngressClassList { + errors: [JSON]! + items: [ingressclass_IngressClass]! + listMeta: types_ListMeta! +} + +type ingressclass_IngressClass { + controller: String! + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type job_JobDetail { + completions: Int! + containerImages: [String]! + errors: [JSON]! + initContainerImages: [String]! + jobStatus: job_JobStatus! + objectMeta: types_ObjectMeta! + parallelism: Int! + podInfo: common_PodInfo! + typeMeta: types_TypeMeta! +} + +type controller_LogSources { + containerNames: [String]! + initContainerNames: [String]! + podNames: [String]! +} + +type logs_LogDetails { + info: logs_LogInfo! + logs: [logs_LogLine]! + selection: logs_Selection! +} + +type logs_LogInfo { + containerName: String! + fromDate: String! + initContainerName: String! + podName: String! + toDate: String! + truncated: Boolean! +} + +type logs_LogLine { + content: String! + timestamp: String! +} + +type logs_Selection { + logFilePosition: String! + offsetFrom: Int! + offsetTo: Int! + referencePoint: logs_LogLineId! +} + +type logs_LogLineId { + lineNum: Int! + timestamp: String! +} + +type namespace_NamespaceList { + errors: [JSON]! + listMeta: types_ListMeta! + namespaces: [namespace_Namespace]! +} + +type namespace_Namespace { + objectMeta: types_ObjectMeta! + phase: String! + typeMeta: types_TypeMeta! +} + +type namespace_NamespaceDetail { + errors: [JSON]! + objectMeta: types_ObjectMeta! + phase: String! + resourceLimits: [limitrange_LimitRangeItem]! + resourceQuotaList: resourcequota_ResourceQuotaDetailList! + typeMeta: types_TypeMeta! +} + +type limitrange_LimitRangeItem { + default: String + defaultRequest: String + max: String + maxLimitRequestRatio: String + min: String + resourceName: String + resourceType: String +} + +type resourcequota_ResourceQuotaDetailList { + items: [resourcequota_ResourceQuotaDetail]! + listMeta: types_ListMeta! +} + +type resourcequota_ResourceQuotaDetail { + objectMeta: types_ObjectMeta! + scopes: [String] + statusList: query_handleGetNamespaceDetail_resourceQuotaList_items_items_statusList + typeMeta: types_TypeMeta! +} + +type query_handleGetNamespaceDetail_resourceQuotaList_items_items_statusList { + additionalProperties: [resourcequota_ResourceStatus_entry] @dictionary(subgraph: "api") +} + +type resourcequota_ResourceStatus_entry { + key: ID! + value: resourcequota_ResourceStatus +} + +type resourcequota_ResourceStatus { + hard: String + used: String +} + +type networkpolicy_NetworkPolicyList { + errors: [JSON]! + items: [networkpolicy_NetworkPolicy]! + listMeta: types_ListMeta! +} + +type networkpolicy_NetworkPolicy { + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type networkpolicy_NetworkPolicyDetail { + egress: [v1_NetworkPolicyEgressRule] + errors: [JSON]! + ingress: [v1_NetworkPolicyIngressRule] + objectMeta: types_ObjectMeta! + podSelector: v1_LabelSelector! + policyTypes: [String] + typeMeta: types_TypeMeta! +} + +""" +NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8 +""" +type v1_NetworkPolicyEgressRule { + """ + ports is a list of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list. + """ + ports: [v1_NetworkPolicyPort] + """ + to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list. + """ + to: [v1_NetworkPolicyPeer] +} + +"""NetworkPolicyPort describes a port to allow traffic on""" +type v1_NetworkPolicyPort { + """ + endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port. + """ + endPort: Int + """ + port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched. + """ + port: String + """ + protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP. + """ + protocol: String +} + +""" +NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed +""" +type v1_NetworkPolicyPeer { + ipBlock: v1_IPBlock + namespaceSelector: v1_LabelSelector + podSelector: v1_LabelSelector +} + +""" +IPBlock describes a particular CIDR (Ex. "192.168.1.0/24","2001:db8::/64") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule. +""" +type v1_IPBlock { + """ + cidr is a string representing the IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64" + """ + cidr: String! + """ + except is a slice of CIDRs that should not be included within an IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64" Except values will be rejected if they are outside the cidr range + """ + except: [String] +} + +""" +NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from. +""" +type v1_NetworkPolicyIngressRule { + """ + from is a list of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list. + """ + from: [v1_NetworkPolicyPeer] + """ + ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list. + """ + ports: [v1_NetworkPolicyPort] +} + +type node_NodeList { + cumulativeMetrics: [api_Metric]! + errors: [JSON]! + listMeta: types_ListMeta! + nodes: [node_Node]! +} + +type node_Node { + allocatedResources: node_NodeAllocatedResources! + objectMeta: types_ObjectMeta! + ready: String! + typeMeta: types_TypeMeta! +} + +type node_NodeAllocatedResources { + allocatedPods: Int! + cpuCapacity: BigInt! + cpuLimits: BigInt! + cpuLimitsFraction: Float! + cpuRequests: BigInt! + cpuRequestsFraction: Float! + memoryCapacity: BigInt! + memoryLimits: BigInt! + memoryLimitsFraction: Float! + memoryRequests: BigInt! + memoryRequestsFraction: Float! + podCapacity: BigInt! + podFraction: Float! +} + +type node_NodeDetail { + addresses: [v1_NodeAddress] + allocatedResources: node_NodeAllocatedResources! + conditions: [common_Condition]! + containerImages: [String]! + errors: [JSON]! + eventList: common_EventList! + metrics: [api_Metric]! + nodeInfo: v1_NodeSystemInfo! + objectMeta: types_ObjectMeta! + phase: String! + podCIDR: String! + podList: pod_PodList! + providerID: String! + ready: String! + taints: [v1_Taint] + typeMeta: types_TypeMeta! + unschedulable: Boolean! +} + +"""NodeAddress contains information for the node's address.""" +type v1_NodeAddress { + """The node address.""" + address: String! + """Node address type, one of Hostname, ExternalIP or InternalIP.""" + type: String! +} + +"""NodeSystemInfo is a set of ids/uuids to uniquely identify the node.""" +type v1_NodeSystemInfo { + """The Architecture reported by the node""" + architecture: String! + """Boot ID reported by the node.""" + bootID: String! + """ + ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2). + """ + containerRuntimeVersion: String! + """ + Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64). + """ + kernelVersion: String! + """KubeProxy Version reported by the node.""" + kubeProxyVersion: String! + """Kubelet Version reported by the node.""" + kubeletVersion: String! + """ + MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html + """ + machineID: String! + """The Operating System reported by the node""" + operatingSystem: String! + """ + OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)). + """ + osImage: String! + """ + SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid + """ + systemUUID: String! +} + +""" +The node this Taint is attached to has the "effect" on any pod that does not tolerate the Taint. +""" +type v1_Taint { + """ + Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute. + """ + effect: String! + """Required. The taint key to be applied to a node.""" + key: String! + """ + TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints. + """ + timeAdded: String + """The taint value corresponding to the taint key.""" + value: String +} + +type persistentvolume_PersistentVolumeList { + errors: [JSON]! + items: [persistentvolume_PersistentVolume]! + listMeta: types_ListMeta! +} + +type persistentvolume_PersistentVolume { + accessModes: [String]! + capacity: query_handleGetPersistentVolumeList_items_items_capacity! + claim: String! + mountOptions: [String]! + objectMeta: types_ObjectMeta! + reason: String! + reclaimPolicy: String! + status: String! + storageClass: String! + typeMeta: types_TypeMeta! +} + +type query_handleGetPersistentVolumeList_items_items_capacity { + additionalProperties: [resource_Quantity_entry] @dictionary(subgraph: "api") +} + +type resource_Quantity_entry { + key: ID! + value: resource_Quantity +} + +type resource_Quantity { + Format: String! + d: resource_infDecAmount! + i: resource_int64Amount! + s: String! +} + +type resource_infDecAmount { + Dec: inf_Dec! +} + +type inf_Dec { + scale: Int! + unscaled: big_Int! +} + +type big_Int { + abs: [Int]! + neg: Boolean! +} + +type resource_int64Amount { + scale: Int! + value: BigInt! +} + +type persistentvolume_PersistentVolumeDetail { + accessModes: [String]! + capacity: query_handleGetPersistentVolumeDetail_capacity! + claim: String! + message: String! + mountOptions: [String]! + objectMeta: types_ObjectMeta! + persistentVolumeSource: v1_PersistentVolumeSource! + reason: String! + reclaimPolicy: String! + status: String! + storageClass: String! + typeMeta: types_TypeMeta! +} + +type query_handleGetPersistentVolumeDetail_capacity { + additionalProperties: [resource_Quantity2_entry] @dictionary(subgraph: "api") +} + +type resource_Quantity2_entry { + key: ID! + value: resource_Quantity2 +} + +type resource_Quantity2 { + Format: String! + d: resource_infDecAmount! + i: resource_int64Amount! + s: String! +} + +""" +PersistentVolumeSource is similar to VolumeSource but meant for the administrator who creates PVs. Exactly one of its members must be set. +""" +type v1_PersistentVolumeSource { + awsElasticBlockStore: v1_AWSElasticBlockStoreVolumeSource + azureDisk: v1_AzureDiskVolumeSource + azureFile: v1_AzureFilePersistentVolumeSource + cephfs: v1_CephFSPersistentVolumeSource + cinder: v1_CinderPersistentVolumeSource + csi: v1_CSIPersistentVolumeSource + fc: v1_FCVolumeSource + flexVolume: v1_FlexPersistentVolumeSource + flocker: v1_FlockerVolumeSource + gcePersistentDisk: v1_GCEPersistentDiskVolumeSource + glusterfs: v1_GlusterfsPersistentVolumeSource + hostPath: v1_HostPathVolumeSource + iscsi: v1_ISCSIPersistentVolumeSource + local: v1_LocalVolumeSource + nfs: v1_NFSVolumeSource + photonPersistentDisk: v1_PhotonPersistentDiskVolumeSource + portworxVolume: v1_PortworxVolumeSource + quobyte: v1_QuobyteVolumeSource + rbd: v1_RBDPersistentVolumeSource + scaleIO: v1_ScaleIOPersistentVolumeSource + storageos: v1_StorageOSPersistentVolumeSource + vsphereVolume: v1_VsphereVirtualDiskVolumeSource +} + +""" +Represents a Persistent Disk resource in AWS. + +An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling. +""" +type v1_AWSElasticBlockStoreVolumeSource { + """ + fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + """ + fsType: String + """ + partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). + """ + partition: Int + """ + readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + """ + readOnly: Boolean + """ + volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore + """ + volumeID: String! +} + +""" +AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. +""" +type v1_AzureDiskVolumeSource { + """cachingMode is the Host Caching mode: None, Read Only, Read Write.""" + cachingMode: String + """diskName is the Name of the data disk in the blob storage""" + diskName: String! + """diskURI is the URI of data disk in the blob storage""" + diskURI: String! + """ + fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + """ + fsType: String + """ + kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared + """ + kind: String + """ + readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean +} + +""" +AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +""" +type v1_AzureFilePersistentVolumeSource { + """ + readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + """ + secretName is the name of secret that contains Azure Storage Account Name and Key + """ + secretName: String! + """ + secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod + """ + secretNamespace: String! + """shareName is the azure Share Name""" + shareName: String! +} + +""" +Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling. +""" +type v1_CephFSPersistentVolumeSource { + """ + monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + """ + monitors: [String]! + """ + path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / + """ + path: String + """ + readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + """ + readOnly: Boolean + """ + secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + """ + secretFile: String + secretRef: v1_SecretReference + """ + user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + """ + user: String +} + +""" +SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace +""" +type v1_SecretReference { + """name is unique within a namespace to reference a secret resource.""" + name: String + """ + namespace defines the space within which the secret name must be unique. + """ + namespace: String +} + +""" +Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling. +""" +type v1_CinderPersistentVolumeSource { + """ + fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + """ + fsType: String + """ + readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + """ + readOnly: Boolean + secretRef: v1_SecretReference + """ + volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + """ + volumeID: String! +} + +""" +Represents storage that is managed by an external CSI volume driver (Beta feature) +""" +type v1_CSIPersistentVolumeSource { + controllerExpandSecretRef: v1_SecretReference + controllerPublishSecretRef: v1_SecretReference + """driver is the name of the driver to use for this volume. Required.""" + driver: String! + """ + fsType to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". + """ + fsType: String + nodeExpandSecretRef: v1_SecretReference + nodePublishSecretRef: v1_SecretReference + nodeStageSecretRef: v1_SecretReference + """ + readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write). + """ + readOnly: Boolean + """volumeAttributes of the volume to publish.""" + volumeAttributes: JSON + """ + volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required. + """ + volumeHandle: String! +} + +""" +Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling. +""" +type v1_FCVolumeSource { + """ + fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + """ + fsType: String + """lun is Optional: FC target lun number""" + lun: Int + """ + readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + """targetWWNs is Optional: FC target worldwide names (WWNs)""" + targetWWNs: [String] + """ + wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + """ + wwids: [String] +} + +""" +FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin. +""" +type v1_FlexPersistentVolumeSource { + """driver is the name of the driver to use for this volume.""" + driver: String! + """ + fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + """ + fsType: String + """options is Optional: this field holds extra command options if any.""" + options: JSON + """ + readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + secretRef: v1_SecretReference +} + +""" +Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling. +""" +type v1_FlockerVolumeSource { + """ + datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated + """ + datasetName: String + """ + datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset + """ + datasetUUID: String +} + +""" +Represents a Persistent Disk resource in Google Compute Engine. + +A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling. +""" +type v1_GCEPersistentDiskVolumeSource { + """ + fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + """ + fsType: String + """ + partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + """ + partition: Int + """ + pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + """ + pdName: String! + """ + readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk + """ + readOnly: Boolean +} + +""" +Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. +""" +type v1_GlusterfsPersistentVolumeSource { + """ + endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + """ + endpoints: String! + """ + endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + """ + endpointsNamespace: String + """ + path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + """ + path: String! + """ + readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + """ + readOnly: Boolean +} + +""" +Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling. +""" +type v1_HostPathVolumeSource { + """ + path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + """ + path: String! + """ + type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath + """ + type: String +} + +""" +ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling. +""" +type v1_ISCSIPersistentVolumeSource { + """ + chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication + """ + chapAuthDiscovery: Boolean + """ + chapAuthSession defines whether support iSCSI Session CHAP authentication + """ + chapAuthSession: Boolean + """ + fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi + """ + fsType: String + """ + initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + """ + initiatorName: String + """iqn is Target iSCSI Qualified Name.""" + iqn: String! + """ + iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + """ + iscsiInterface: String + """lun is iSCSI Target Lun number.""" + lun: Int! + """ + portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + """ + portals: [String] + """ + readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + """ + readOnly: Boolean + secretRef: v1_SecretReference + """ + targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + """ + targetPortal: String! +} + +""" +Local represents directly-attached storage with node affinity (Beta feature) +""" +type v1_LocalVolumeSource { + """ + fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. + """ + fsType: String + """ + path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...). + """ + path: String! +} + +""" +Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling. +""" +type v1_NFSVolumeSource { + """ + path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + """ + path: String! + """ + readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + """ + readOnly: Boolean + """ + server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs + """ + server: String! +} + +"""Represents a Photon Controller persistent disk resource.""" +type v1_PhotonPersistentDiskVolumeSource { + """ + fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + """ + fsType: String + """pdID is the ID that identifies Photon Controller persistent disk""" + pdID: String! +} + +"""PortworxVolumeSource represents a Portworx volume resource.""" +type v1_PortworxVolumeSource { + """ + fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. + """ + fsType: String + """ + readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + """volumeID uniquely identifies a Portworx volume""" + volumeID: String! +} + +""" +Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling. +""" +type v1_QuobyteVolumeSource { + """group to map volume access to Default is no group""" + group: String + """ + readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. + """ + readOnly: Boolean + """ + registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes + """ + registry: String! + """ + tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin + """ + tenant: String + """user to map volume access to Defaults to serivceaccount user""" + user: String + """ + volume is a string that references an already created Quobyte volume by name. + """ + volume: String! +} + +""" +Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling. +""" +type v1_RBDPersistentVolumeSource { + """ + fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd + """ + fsType: String + """ + image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + image: String! + """ + keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + keyring: String + """ + monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + monitors: [String]! + """ + pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + pool: String + """ + readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + readOnly: Boolean + secretRef: v1_SecretReference + """ + user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + user: String +} + +"""ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume""" +type v1_ScaleIOPersistentVolumeSource { + """ + fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs" + """ + fsType: String + """gateway is the host address of the ScaleIO API Gateway.""" + gateway: String! + """ + protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. + """ + protectionDomain: String + """ + readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + secretRef: v1_SecretReference! + """ + sslEnabled is the flag to enable/disable SSL communication with Gateway, default false + """ + sslEnabled: Boolean + """ + storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + """ + storageMode: String + """ + storagePool is the ScaleIO Storage Pool associated with the protection domain. + """ + storagePool: String + """system is the name of the storage system as configured in ScaleIO.""" + system: String! + """ + volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. + """ + volumeName: String +} + +"""Represents a StorageOS persistent volume resource.""" +type v1_StorageOSPersistentVolumeSource { + """ + fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + """ + fsType: String + """ + readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + secretRef: v1_ObjectReference + """ + volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + """ + volumeName: String + """ + volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + """ + volumeNamespace: String +} + +""" +ObjectReference contains enough information to let you inspect or modify the referred object. +""" +type v1_ObjectReference { + """API version of the referent.""" + apiVersion: String + """ + If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. + """ + fieldPath: String + """ + Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + kind: String + """ + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + """ + name: String + """ + Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + """ + namespace: String + """ + Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + """ + resourceVersion: String + """ + UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + """ + uid: String +} + +"""Represents a vSphere volume resource.""" +type v1_VsphereVirtualDiskVolumeSource { + """ + fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + """ + fsType: String + """ + storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. + """ + storagePolicyID: String + """ + storagePolicyName is the storage Policy Based Management (SPBM) profile name. + """ + storagePolicyName: String + """volumePath is the path that identifies vSphere volume vmdk""" + volumePath: String! +} + +type persistentvolumeclaim_PersistentVolumeClaimList { + errors: [JSON]! + items: [persistentvolumeclaim_PersistentVolumeClaim]! + listMeta: types_ListMeta! +} + +type persistentvolumeclaim_PersistentVolumeClaim { + accessModes: [String]! + capacity: query_handleGetPersistentVolumeClaimList_items_items_capacity! + objectMeta: types_ObjectMeta! + status: String! + storageClass: String! + typeMeta: types_TypeMeta! + volume: String! +} + +type query_handleGetPersistentVolumeClaimList_items_items_capacity { + additionalProperties: [resource_Quantity3_entry] @dictionary(subgraph: "api") +} + +type resource_Quantity3_entry { + key: ID! + value: resource_Quantity3 +} + +type resource_Quantity3 { + Format: String! + d: resource_infDecAmount! + i: resource_int64Amount! + s: String! +} + +type persistentvolumeclaim_PersistentVolumeClaimDetail { + accessModes: [String]! + capacity: query_handleGetPersistentVolumeClaimDetail_capacity! + objectMeta: types_ObjectMeta! + status: String! + storageClass: String! + typeMeta: types_TypeMeta! + volume: String! +} + +type query_handleGetPersistentVolumeClaimDetail_capacity { + additionalProperties: [resource_Quantity4_entry] @dictionary(subgraph: "api") +} + +type resource_Quantity4_entry { + key: ID! + value: resource_Quantity4 +} + +type resource_Quantity4 { + Format: String! + d: resource_infDecAmount! + i: resource_int64Amount! + s: String! +} + +type pod_PodDetail { + conditions: [common_Condition]! + containers: [pod_Container]! + controller: controller_ResourceOwner + errors: [JSON]! + eventList: common_EventList! + imagePullSecrets: [v1_LocalObjectReference] + initContainers: [pod_Container]! + metrics: [api_Metric]! + nodeName: String! + objectMeta: types_ObjectMeta! + persistentVolumeClaimList: persistentvolumeclaim_PersistentVolumeClaimList! + podIP: String! + podPhase: String! + qosClass: String! + restartCount: Int! + securityContext: v1_PodSecurityContext! + serviceAccountName: String! + typeMeta: types_TypeMeta! +} + +type pod_Container { + args: [String]! + commands: [String]! + env: [pod_EnvVar]! + image: String! + livenessProbe: v1_Probe! + name: String! + readinessProbe: v1_Probe! + resources: v1_ResourceRequirements + securityContext: v1_SecurityContext! + startupProbe: v1_Probe! + status: v1_ContainerStatus! + volumeMounts: [pod_VolumeMount]! +} + +type pod_EnvVar { + name: String! + value: String! + valueFrom: v1_EnvVarSource! +} + +"""EnvVarSource represents a source for the value of an EnvVar.""" +type v1_EnvVarSource { + configMapKeyRef: v1_ConfigMapKeySelector + fieldRef: v1_ObjectFieldSelector + resourceFieldRef: v1_ResourceFieldSelector + secretKeyRef: v1_SecretKeySelector +} + +"""Selects a key from a ConfigMap.""" +type v1_ConfigMapKeySelector { + """The key to select.""" + key: String! + """ + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + """ + name: String + """Specify whether the ConfigMap or its key must be defined""" + optional: Boolean +} + +"""ObjectFieldSelector selects an APIVersioned field of an object.""" +type v1_ObjectFieldSelector { + """ + Version of the schema the FieldPath is written in terms of, defaults to "v1". + """ + apiVersion: String + """Path of the field to select in the specified API version.""" + fieldPath: String! +} + +""" +ResourceFieldSelector represents container resources (cpu, memory) and their output format +""" +type v1_ResourceFieldSelector { + """Container name: required for volumes, optional for env vars""" + containerName: String + """ + Specifies the output format of the exposed resources, defaults to "1" + """ + divisor: String + """Required: resource to select""" + resource: String! +} + +"""SecretKeySelector selects a key of a Secret.""" +type v1_SecretKeySelector { + """The key of the secret to select from. Must be a valid secret key.""" + key: String! + """ + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + """ + name: String + """Specify whether the Secret or its key must be defined""" + optional: Boolean +} + +""" +Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +""" +type v1_Probe { + exec: v1_ExecAction + """ + Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. + """ + failureThreshold: Int + grpc: v1_GRPCAction + httpGet: v1_HTTPGetAction + """ + Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + """ + initialDelaySeconds: Int + """ + How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. + """ + periodSeconds: Int + """ + Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. + """ + successThreshold: Int + tcpSocket: v1_TCPSocketAction + """ + Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. + """ + terminationGracePeriodSeconds: BigInt + """ + Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + """ + timeoutSeconds: Int +} + +"""ExecAction describes a "run in container" action.""" +type v1_ExecAction { + """ + Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + """ + command: [String] +} + +type v1_GRPCAction { + """ + Port number of the gRPC service. Number must be in the range 1 to 65535. + """ + port: Int! + """ + Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). + + If this is not specified, the default behavior is defined by gRPC. + """ + service: String! +} + +"""HTTPGetAction describes an action based on HTTP Get requests.""" +type v1_HTTPGetAction { + """ + Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + """ + host: String + """Custom headers to set in the request. HTTP allows repeated headers.""" + httpHeaders: [v1_HTTPHeader] + """Path to access on the HTTP server.""" + path: String + """ + Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + """ + port: String! + """Scheme to use for connecting to the host. Defaults to HTTP.""" + scheme: String +} + +"""HTTPHeader describes a custom header to be used in HTTP probes""" +type v1_HTTPHeader { + """ + The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. + """ + name: String! + """The header field value""" + value: String! +} + +"""TCPSocketAction describes an action based on opening a socket""" +type v1_TCPSocketAction { + """Optional: Host name to connect to, defaults to the pod IP.""" + host: String + """ + Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + """ + port: String! +} + +"""ResourceRequirements describes the compute resource requirements.""" +type v1_ResourceRequirements { + """ + Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. + + This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + """ + claims: [v1_ResourceClaim] + limits: query_handleGetPodDetail_containers_items_resources_limits + requests: query_handleGetPodDetail_containers_items_resources_requests +} + +"""ResourceClaim references one entry in PodSpec.ResourceClaims.""" +type v1_ResourceClaim { + """ + Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. + """ + name: String! +} + +""" +Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ +""" +type query_handleGetPodDetail_containers_items_resources_limits { + additionalProperties: [resource_Quantity5_entry] @dictionary(subgraph: "api") +} + +type resource_Quantity5_entry { + key: ID! + value: resource_Quantity5 +} + +type resource_Quantity5 { + Format: String! + d: resource_infDecAmount! + i: resource_int64Amount! + s: String! +} + +""" +Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ +""" +type query_handleGetPodDetail_containers_items_resources_requests { + additionalProperties: [resource_Quantity6_entry] @dictionary(subgraph: "api") +} + +type resource_Quantity6_entry { + key: ID! + value: resource_Quantity6 +} + +type resource_Quantity6 { + Format: String! + d: resource_infDecAmount! + i: resource_int64Amount! + s: String! +} + +""" +SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. +""" +type v1_SecurityContext { + """ + AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. + """ + allowPrivilegeEscalation: Boolean + capabilities: v1_Capabilities + """ + Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows. + """ + privileged: Boolean + """ + procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. + """ + procMount: String + """ + Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows. + """ + readOnlyRootFilesystem: Boolean + """ + The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. + """ + runAsGroup: BigInt + """ + Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + """ + runAsNonRoot: Boolean + """ + The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. + """ + runAsUser: BigInt + seLinuxOptions: v1_SELinuxOptions + seccompProfile: v1_SeccompProfile + windowsOptions: v1_WindowsSecurityContextOptions +} + +"""Adds and removes POSIX capabilities from running containers.""" +type v1_Capabilities { + """Added capabilities""" + add: [String] + """Removed capabilities""" + drop: [String] +} + +"""SELinuxOptions are the labels to be applied to the container""" +type v1_SELinuxOptions { + """Level is SELinux level label that applies to the container.""" + level: String + """Role is a SELinux role label that applies to the container.""" + role: String + """Type is a SELinux type label that applies to the container.""" + type: String + """User is a SELinux user label that applies to the container.""" + user: String +} + +""" +SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. +""" +type v1_SeccompProfile { + """ + localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is "Localhost". Must NOT be set for any other type. + """ + localhostProfile: String + """ + type indicates which kind of seccomp profile will be applied. Valid options are: + + Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. + """ + type: String! +} + +""" +WindowsSecurityContextOptions contain Windows-specific options and credentials. +""" +type v1_WindowsSecurityContextOptions { + """ + GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. + """ + gmsaCredentialSpec: String + """GMSACredentialSpecName is the name of the GMSA credential spec to use.""" + gmsaCredentialSpecName: String + """ + HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true. + """ + hostProcess: Boolean + """ + The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + """ + runAsUserName: String +} + +""" +ContainerStatus contains details for the current status of this container. +""" +type v1_ContainerStatus { + allocatedResources: query_handleGetPodDetail_containers_items_status_allocatedResources + """ + ContainerID is the ID of the container in the format '://'. Where type is a container runtime identifier, returned from Version call of CRI API (for example "containerd"). + """ + containerID: String + """ + Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images. + """ + image: String! + """ + ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime. + """ + imageID: String! + lastState: v1_ContainerState + """ + Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated. + """ + name: String! + """ + Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field). + + The value is typically used to determine whether a container is ready to accept traffic. + """ + ready: Boolean! + resources: v1_ResourceRequirements + """ + RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative. + """ + restartCount: Int! + """ + Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false. + """ + started: Boolean + state: v1_ContainerState +} + +""" +AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize. +""" +type query_handleGetPodDetail_containers_items_status_allocatedResources { + additionalProperties: [resource_Quantity7_entry] @dictionary(subgraph: "api") +} + +type resource_Quantity7_entry { + key: ID! + value: resource_Quantity7 +} + +type resource_Quantity7 { + Format: String! + d: resource_infDecAmount! + i: resource_int64Amount! + s: String! +} + +""" +ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting. +""" +type v1_ContainerState { + running: v1_ContainerStateRunning + terminated: v1_ContainerStateTerminated + waiting: v1_ContainerStateWaiting +} + +"""ContainerStateRunning is a running state of a container.""" +type v1_ContainerStateRunning { + """Time at which the container was last (re-)started""" + startedAt: String +} + +"""ContainerStateTerminated is a terminated state of a container.""" +type v1_ContainerStateTerminated { + """Container's ID in the format '://'""" + containerID: String + """Exit status from the last termination of the container""" + exitCode: Int! + """Time at which the container last terminated""" + finishedAt: String + """Message regarding the last termination of the container""" + message: String + """(brief) reason from the last termination of the container""" + reason: String + """Signal from the last termination of the container""" + signal: Int + """Time at which previous execution of the container started""" + startedAt: String +} + +"""ContainerStateWaiting is a waiting state of a container.""" +type v1_ContainerStateWaiting { + """Message regarding why the container is not yet running.""" + message: String + """(brief) reason the container is not yet running.""" + reason: String +} + +type pod_VolumeMount { + mountPath: String! + name: String! + readOnly: Boolean! + subPath: String! + volume: v1_Volume! +} + +""" +Volume represents a named volume in a pod that may be accessed by any container in the pod. +""" +type v1_Volume { + awsElasticBlockStore: v1_AWSElasticBlockStoreVolumeSource + azureDisk: v1_AzureDiskVolumeSource + azureFile: v1_AzureFileVolumeSource + cephfs: v1_CephFSVolumeSource + cinder: v1_CinderVolumeSource + configMap: v1_ConfigMapVolumeSource + csi: v1_CSIVolumeSource + downwardAPI: v1_DownwardAPIVolumeSource + emptyDir: v1_EmptyDirVolumeSource + ephemeral: v1_EphemeralVolumeSource + fc: v1_FCVolumeSource + flexVolume: v1_FlexVolumeSource + flocker: v1_FlockerVolumeSource + gcePersistentDisk: v1_GCEPersistentDiskVolumeSource + gitRepo: v1_GitRepoVolumeSource + glusterfs: v1_GlusterfsVolumeSource + hostPath: v1_HostPathVolumeSource + iscsi: v1_ISCSIVolumeSource + """ + name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + """ + name: String! + nfs: v1_NFSVolumeSource + persistentVolumeClaim: v1_PersistentVolumeClaimVolumeSource + photonPersistentDisk: v1_PhotonPersistentDiskVolumeSource + portworxVolume: v1_PortworxVolumeSource + projected: v1_ProjectedVolumeSource + quobyte: v1_QuobyteVolumeSource + rbd: v1_RBDVolumeSource + scaleIO: v1_ScaleIOVolumeSource + secret: v1_SecretVolumeSource + storageos: v1_StorageOSVolumeSource + vsphereVolume: v1_VsphereVirtualDiskVolumeSource +} + +""" +AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +""" +type v1_AzureFileVolumeSource { + """ + readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + """ + secretName is the name of secret that contains Azure Storage Account Name and Key + """ + secretName: String! + """shareName is the azure share Name""" + shareName: String! +} + +""" +Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling. +""" +type v1_CephFSVolumeSource { + """ + monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + """ + monitors: [String]! + """ + path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / + """ + path: String + """ + readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + """ + readOnly: Boolean + """ + secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + """ + secretFile: String + secretRef: v1_LocalObjectReference + """ + user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it + """ + user: String +} + +""" +LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. +""" +type v1_LocalObjectReference { + """ + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + """ + name: String +} + +""" +Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling. +""" +type v1_CinderVolumeSource { + """ + fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + """ + fsType: String + """ + readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + """ + readOnly: Boolean + secretRef: v1_LocalObjectReference + """ + volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md + """ + volumeID: String! +} + +""" +Adapts a ConfigMap into a volume. + +The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling. +""" +type v1_ConfigMapVolumeSource { + """ + defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + """ + defaultMode: Int + """ + items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + """ + items: [v1_KeyToPath] + """ + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + """ + name: String + """optional specify whether the ConfigMap or its keys must be defined""" + optional: Boolean +} + +"""Maps a string key to a path within a volume.""" +type v1_KeyToPath { + """key is the key to project.""" + key: String! + """ + mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + """ + mode: Int + """ + path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + """ + path: String! +} + +""" +Represents a source location of a volume to mount, managed by an external CSI driver +""" +type v1_CSIVolumeSource { + """ + driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + """ + driver: String! + """ + fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. + """ + fsType: String + nodePublishSecretRef: v1_LocalObjectReference + """ + readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). + """ + readOnly: Boolean + """ + volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. + """ + volumeAttributes: JSON +} + +""" +DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling. +""" +type v1_DownwardAPIVolumeSource { + """ + Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + """ + defaultMode: Int + """Items is a list of downward API volume file""" + items: [v1_DownwardAPIVolumeFile] +} + +""" +DownwardAPIVolumeFile represents information to create the file containing the pod field +""" +type v1_DownwardAPIVolumeFile { + fieldRef: v1_ObjectFieldSelector + """ + Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + """ + mode: Int + """ + Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..' + """ + path: String! + resourceFieldRef: v1_ResourceFieldSelector +} + +""" +Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling. +""" +type v1_EmptyDirVolumeSource { + """ + medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + """ + medium: String + """ + sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir + """ + sizeLimit: String +} + +""" +Represents an ephemeral volume that is handled by a normal storage driver. +""" +type v1_EphemeralVolumeSource { + volumeClaimTemplate: v1_PersistentVolumeClaimTemplate +} + +""" +PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource. +""" +type v1_PersistentVolumeClaimTemplate { + metadata: v1_ObjectMeta + spec: v1_PersistentVolumeClaimSpec! +} + +""" +ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. +""" +type v1_ObjectMeta { + """ + Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + """ + annotations: JSON + """ + CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. + + Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + creationTimestamp: String + """ + Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only. + """ + deletionGracePeriodSeconds: BigInt + """ + DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. + + Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + deletionTimestamp: String + """ + Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list. + """ + finalizers: [String] + """ + GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. + + If this field is specified and the generated name exists, the server will return a 409. + + Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency + """ + generateName: String + """ + A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. + """ + generation: BigInt + """ + Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels + """ + labels: JSON + """ + ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object. + """ + managedFields: [v1_ManagedFieldsEntry] + """ + Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + """ + name: String + """ + Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. + + Must be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces + """ + namespace: String + """ + List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller. + """ + ownerReferences: [v1_OwnerReference] + """ + An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. + + Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + """ + resourceVersion: String + """ + Deprecated: selfLink is a legacy read-only field that is no longer populated by the system. + """ + selfLink: String + """ + UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. + + Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + """ + uid: String +} + +""" +ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to. +""" +type v1_ManagedFieldsEntry { + """ + APIVersion defines the version of this resource that this field set applies to. The format is "group/version" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted. + """ + apiVersion: String + """ + FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1" + """ + fieldsType: String + """ + FieldsV1 holds the first JSON version format as described in the "FieldsV1" type. + """ + fieldsV1: String + """Manager is an identifier of the workflow managing these fields.""" + manager: String + """ + Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'. + """ + operation: String + """ + Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource. + """ + subresource: String + """ + Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over. + """ + time: String +} + +""" +OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field. +""" +type v1_OwnerReference { + """API version of the referent.""" + apiVersion: String! + """ + If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned. + """ + blockOwnerDeletion: Boolean + """If true, this reference points to the managing controller.""" + controller: Boolean + """ + Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + """ + kind: String! + """ + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + """ + name: String! + """ + UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + """ + uid: String! +} + +""" +PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes +""" +type v1_PersistentVolumeClaimSpec { + """ + accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 + """ + accessModes: [String] + dataSource: v1_TypedLocalObjectReference + dataSourceRef: v1_TypedObjectReference + resources: v1_VolumeResourceRequirements + selector: v1_LabelSelector + """ + storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 + """ + storageClassName: String + """ + volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + """ + volumeAttributesClassName: String + """ + volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. + """ + volumeMode: String + """ + volumeName is the binding reference to the PersistentVolume backing this claim. + """ + volumeName: String +} + +type v1_TypedObjectReference { + """ + APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + """ + apiGroup: String! + """Kind is the type of resource being referenced""" + kind: String! + """Name is the name of resource being referenced""" + name: String! + """ + Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. + """ + namespace: String +} + +""" +VolumeResourceRequirements describes the storage resource requirements for a volume. +""" +type v1_VolumeResourceRequirements { + limits: query_handleGetPodDetail_containers_items_volumeMounts_items_volume_ephemeral_volumeClaimTemplate_spec_resources_limits + requests: query_handleGetPodDetail_containers_items_volumeMounts_items_volume_ephemeral_volumeClaimTemplate_spec_resources_requests +} + +""" +Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ +""" +type query_handleGetPodDetail_containers_items_volumeMounts_items_volume_ephemeral_volumeClaimTemplate_spec_resources_limits { + additionalProperties: [resource_Quantity8_entry] @dictionary(subgraph: "api") +} + +type resource_Quantity8_entry { + key: ID! + value: resource_Quantity8 +} + +type resource_Quantity8 { + Format: String! + d: resource_infDecAmount! + i: resource_int64Amount! + s: String! +} + +""" +Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ +""" +type query_handleGetPodDetail_containers_items_volumeMounts_items_volume_ephemeral_volumeClaimTemplate_spec_resources_requests { + additionalProperties: [resource_Quantity9_entry] @dictionary(subgraph: "api") +} + +type resource_Quantity9_entry { + key: ID! + value: resource_Quantity9 +} + +type resource_Quantity9 { + Format: String! + d: resource_infDecAmount! + i: resource_int64Amount! + s: String! +} + +""" +FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. +""" +type v1_FlexVolumeSource { + """driver is the name of the driver to use for this volume.""" + driver: String! + """ + fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. + """ + fsType: String + """options is Optional: this field holds extra command options if any.""" + options: JSON + """ + readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + secretRef: v1_LocalObjectReference +} + +""" +Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling. + +DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. +""" +type v1_GitRepoVolumeSource { + """ + directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. + """ + directory: String + """repository is the URL""" + repository: String! + """revision is the commit hash for the specified revision.""" + revision: String +} + +""" +Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. +""" +type v1_GlusterfsVolumeSource { + """ + endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + """ + endpoints: String! + """ + path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + """ + path: String! + """ + readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + """ + readOnly: Boolean +} + +""" +Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling. +""" +type v1_ISCSIVolumeSource { + """ + chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication + """ + chapAuthDiscovery: Boolean + """ + chapAuthSession defines whether support iSCSI Session CHAP authentication + """ + chapAuthSession: Boolean + """ + fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi + """ + fsType: String + """ + initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. + """ + initiatorName: String + """iqn is the target iSCSI Qualified Name.""" + iqn: String! + """ + iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). + """ + iscsiInterface: String + """lun represents iSCSI Target Lun number.""" + lun: Int! + """ + portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + """ + portals: [String] + """ + readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. + """ + readOnly: Boolean + secretRef: v1_LocalObjectReference + """ + targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + """ + targetPortal: String! +} + +""" +PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system). +""" +type v1_PersistentVolumeClaimVolumeSource { + """ + claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + """ + claimName: String! + """ + readOnly Will force the ReadOnly setting in VolumeMounts. Default false. + """ + readOnly: Boolean +} + +"""Represents a projected volume source""" +type v1_ProjectedVolumeSource { + """ + defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + """ + defaultMode: Int + """sources is the list of volume projections""" + sources: [v1_VolumeProjection]! +} + +""" +Projection that may be projected along with other supported volume types +""" +type v1_VolumeProjection { + clusterTrustBundle: v1_ClusterTrustBundleProjection + configMap: v1_ConfigMapProjection + downwardAPI: v1_DownwardAPIProjection + secret: v1_SecretProjection + serviceAccountToken: v1_ServiceAccountTokenProjection +} + +""" +ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem. +""" +type v1_ClusterTrustBundleProjection { + labelSelector: v1_LabelSelector + """ + Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector. + """ + name: String + """ + If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles. + """ + optional: Boolean + """Relative path from the volume root to write the bundle.""" + path: String! + """ + Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated. + """ + signerName: String +} + +""" +Adapts a ConfigMap into a projected volume. + +The contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode. +""" +type v1_ConfigMapProjection { + """ + items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + """ + items: [v1_KeyToPath] + """ + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + """ + name: String + """optional specify whether the ConfigMap or its keys must be defined""" + optional: Boolean +} + +""" +Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode. +""" +type v1_DownwardAPIProjection { + """Items is a list of DownwardAPIVolume file""" + items: [v1_DownwardAPIVolumeFile] +} + +""" +Adapts a secret into a projected volume. + +The contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode. +""" +type v1_SecretProjection { + """ + items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + """ + items: [v1_KeyToPath] + """ + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + """ + name: String + """optional field specify whether the Secret or its key must be defined""" + optional: Boolean +} + +""" +ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise). +""" +type v1_ServiceAccountTokenProjection { + """ + audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. + """ + audience: String + """ + expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. + """ + expirationSeconds: BigInt + """ + path is the path relative to the mount point of the file to project the token into. + """ + path: String! +} + +""" +Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling. +""" +type v1_RBDVolumeSource { + """ + fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd + """ + fsType: String + """ + image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + image: String! + """ + keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + keyring: String + """ + monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + monitors: [String]! + """ + pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + pool: String + """ + readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + readOnly: Boolean + secretRef: v1_LocalObjectReference + """ + user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it + """ + user: String +} + +"""ScaleIOVolumeSource represents a persistent ScaleIO volume""" +type v1_ScaleIOVolumeSource { + """ + fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". + """ + fsType: String + """gateway is the host address of the ScaleIO API Gateway.""" + gateway: String! + """ + protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. + """ + protectionDomain: String + """ + readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + secretRef: v1_LocalObjectReference! + """ + sslEnabled Flag enable/disable SSL communication with Gateway, default false + """ + sslEnabled: Boolean + """ + storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. + """ + storageMode: String + """ + storagePool is the ScaleIO Storage Pool associated with the protection domain. + """ + storagePool: String + """system is the name of the storage system as configured in ScaleIO.""" + system: String! + """ + volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. + """ + volumeName: String +} + +""" +Adapts a Secret into a volume. + +The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling. +""" +type v1_SecretVolumeSource { + """ + defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. + """ + defaultMode: Int + """ + items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. + """ + items: [v1_KeyToPath] + """optional field specify whether the Secret or its keys must be defined""" + optional: Boolean + """ + secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret + """ + secretName: String +} + +"""Represents a StorageOS persistent volume resource.""" +type v1_StorageOSVolumeSource { + """ + fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + """ + fsType: String + """ + readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. + """ + readOnly: Boolean + secretRef: v1_LocalObjectReference + """ + volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + """ + volumeName: String + """ + volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. + """ + volumeNamespace: String +} + +type controller_ResourceOwner { + containerImages: [String]! + initContainerImages: [String]! + objectMeta: types_ObjectMeta! + pods: common_PodInfo! + typeMeta: types_TypeMeta! +} + +""" +PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext. +""" +type v1_PodSecurityContext { + """ + A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: + + 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw + """ + fsGroup: BigInt + """ + fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used. Note that this field cannot be set when spec.os.name is windows. + """ + fsGroupChangePolicy: String + """ + The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + """ + runAsGroup: BigInt + """ + Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + """ + runAsNonRoot: Boolean + """ + The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + """ + runAsUser: BigInt + seLinuxOptions: v1_SELinuxOptions + seccompProfile: v1_SeccompProfile + """ + A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows. + """ + supplementalGroups: [BigInt] + """ + Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows. + """ + sysctls: [v1_Sysctl] + windowsOptions: v1_WindowsSecurityContextOptions +} + +"""Sysctl defines a kernel parameter to be set""" +type v1_Sysctl { + """Name of a property to set""" + name: String! + """Value of a property to set""" + value: String! +} + +type handler_TerminalResponse { + id: String! +} + +type replicaset_ReplicaSetDetail { + containerImages: [String]! + errors: [JSON]! + horizontalPodAutoscalerList: horizontalpodautoscaler_HorizontalPodAutoscalerList! + initContainerImages: [String]! + objectMeta: types_ObjectMeta! + podInfo: common_PodInfo! + selector: v1_LabelSelector! + typeMeta: types_TypeMeta! +} + +type replicationcontroller_ReplicationControllerList { + cumulativeMetrics: [api_Metric]! + errors: [JSON]! + listMeta: types_ListMeta! + replicationControllers: [replicationcontroller_ReplicationController]! + status: common_ResourceStatus! +} + +type replicationcontroller_ReplicationController { + containerImages: [String]! + initContainerImages: [String]! + objectMeta: types_ObjectMeta! + podInfo: common_PodInfo! + typeMeta: types_TypeMeta! +} + +type replicationcontroller_ReplicationControllerDetail { + containerImages: [String]! + errors: [JSON]! + initContainerImages: [String]! + labelSelector: JSON! + objectMeta: types_ObjectMeta! + podInfo: common_PodInfo! + typeMeta: types_TypeMeta! +} + +type role_RoleList { + errors: [JSON]! + items: [role_Role]! + listMeta: types_ListMeta! +} + +type role_Role { + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type role_RoleDetail { + errors: [JSON]! + objectMeta: types_ObjectMeta! + rules: [v1_PolicyRule]! + typeMeta: types_TypeMeta! +} + +type rolebinding_RoleBindingList { + errors: [JSON]! + items: [rolebinding_RoleBinding]! + listMeta: types_ListMeta! +} + +type rolebinding_RoleBinding { + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type rolebinding_RoleBindingDetail { + errors: [JSON]! + objectMeta: types_ObjectMeta! + roleRef: v1_RoleRef! + subjects: [v1_Subject] + typeMeta: types_TypeMeta! +} + +type scaling_ReplicaCounts { + actualReplicas: Int! + desiredReplicas: Int! +} + +type secret_SecretList { + errors: [JSON]! + listMeta: types_ListMeta! + secrets: [secret_Secret]! +} + +type secret_Secret { + objectMeta: types_ObjectMeta! + type: String! + typeMeta: types_TypeMeta! +} + +type secret_SecretDetail { + data: JSON! + objectMeta: types_ObjectMeta! + type: String! + typeMeta: types_TypeMeta! +} + +type service_ServiceDetail { + clusterIP: String! + endpointList: endpoint_EndpointList! + errors: [JSON]! + externalEndpoints: [common_Endpoint]! + internalEndpoint: common_Endpoint! + objectMeta: types_ObjectMeta! + selector: JSON! + sessionAffinity: String! + type: String! + typeMeta: types_TypeMeta! +} + +type endpoint_EndpointList { + endpoints: [endpoint_Endpoint]! + listMeta: types_ListMeta! +} + +type endpoint_Endpoint { + host: String! + nodeName: String! + objectMeta: types_ObjectMeta! + ports: [v1_EndpointPort]! + ready: Boolean! + typeMeta: types_TypeMeta! +} + +"""EndpointPort is a tuple that describes a single port.""" +type v1_EndpointPort { + """ + The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: + + * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). + + * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 + + * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol. + """ + appProtocol: String + """ + The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined. + """ + name: String + """The port number of the endpoint.""" + port: Int! + """ + The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP. + """ + protocol: String +} + +type serviceaccount_ServiceAccountList { + errors: [JSON]! + items: [serviceaccount_ServiceAccount]! + listMeta: types_ListMeta! +} + +type serviceaccount_ServiceAccount { + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type serviceaccount_ServiceAccountDetail { + errors: [JSON]! + objectMeta: types_ObjectMeta! + typeMeta: types_TypeMeta! +} + +type statefulset_StatefulSetList { + cumulativeMetrics: [api_Metric]! + errors: [JSON]! + listMeta: types_ListMeta! + statefulSets: [statefulset_StatefulSet]! + status: common_ResourceStatus! +} + +type statefulset_StatefulSet { + containerImages: [String]! + initContainerImages: [String]! + objectMeta: types_ObjectMeta! + podInfo: common_PodInfo! + typeMeta: types_TypeMeta! +} + +type statefulset_StatefulSetDetail { + containerImages: [String]! + errors: [JSON]! + initContainerImages: [String]! + objectMeta: types_ObjectMeta! + podInfo: common_PodInfo! + typeMeta: types_TypeMeta! +} + +type storageclass_StorageClassList { + errors: [JSON]! + items: [storageclass_StorageClass]! + listMeta: types_ListMeta! +} + +type storageclass_StorageClass { + objectMeta: types_ObjectMeta! + parameters: JSON! + provisioner: String! + typeMeta: types_TypeMeta! +} + +type Mutation { + """creates a resource in a namespace""" + handlePutResource( + """kind of the resource""" + kind: String! + """name of the resource""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: runtime_Unknown_Input! + """namespace of the resource""" + namespace: String! + ): runtime_Unknown! @httpOperation(subgraph: "api", path: "/api/v1/_raw/{args.kind}/name/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: PUT, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/_raw/{args.kind}/namespace/{args.namespace}/name/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: PUT, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """deletes a resource from a namespace""" + handleDeleteResource( + """kind of the resource""" + kind: String! + """name of the resource""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + """namespace of the resource""" + namespace: String! + ): JSON @httpOperation(subgraph: "api", path: "/api/v1/_raw/{args.kind}/name/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: DELETE, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/_raw/{args.kind}/namespace/{args.namespace}/name/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: DELETE, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """creates an application based on provided deployment.AppDeploymentSpec""" + handleDeploy( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: deployment_AppDeploymentSpec_Input! + ): deployment_AppDeploymentSpec! @httpOperation(subgraph: "api", path: "/api/v1/appdeployment", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: POST, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """checks if provided image is valid""" + handleImageReferenceValidity( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: validation_ImageReferenceValiditySpec_Input! + ): validation_ImageReferenceValidity @httpOperation(subgraph: "api", path: "/api/v1/appdeployment/validate/imagereference", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: POST, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """checks if provided name is valid""" + handleNameValidity( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: validation_AppNameValiditySpec_Input! + ): validation_AppNameValidity @httpOperation(subgraph: "api", path: "/api/v1/appdeployment/validate/name", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: POST, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """checks if provided service protocol is valid""" + handleProtocolValidity( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: validation_ProtocolValiditySpec_Input! + ): validation_ProtocolValidity @httpOperation(subgraph: "api", path: "/api/v1/appdeployment/validate/protocol", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: POST, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """create an application from file""" + handleDeployFromFile( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: deployment_AppDeploymentFromFileSpec_Input! + ): deployment_AppDeploymentFromFileResponse @httpOperation(subgraph: "api", path: "/api/v1/appdeploymentfromfile", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: POST, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """triggers a Job based on CronJob""" + handleTriggerCronJob( + """namespace of the CronJob""" + namespace: String! + """name of the CronJob""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): JSON @httpOperation(subgraph: "api", path: "/api/v1/cronjob/{args.namespace}/{args.name}/trigger", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: PUT, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """pauses the Deployment""" + handleDeploymentPause( + """namespace of the Deployment""" + namespace: String! + """name of the Deployment""" + deployment: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): deployment_DeploymentDetail @httpOperation(subgraph: "api", path: "/api/v1/deployment/{args.namespace}/{args.deployment}/pause", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: PUT, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """rollout restart of the Deployment""" + handleDeploymentRestart( + """namespace of the Deployment""" + namespace: String! + """name of the Deployment""" + deployment: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): deployment_RolloutSpec! @httpOperation(subgraph: "api", path: "/api/v1/deployment/{args.namespace}/{args.deployment}/restart", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: PUT, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """resumes the Deployment""" + handleDeploymentResume( + """namespace of the Deployment""" + namespace: String! + """name of the Deployment""" + deployment: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): deployment_DeploymentDetail @httpOperation(subgraph: "api", path: "/api/v1/deployment/{args.namespace}/{args.deployment}/resume", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: PUT, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """rolls back the Deployment to the target revision""" + handleDeploymentRollback( + """namespace of the Deployment""" + namespace: String! + """name of the Deployment""" + deployment: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: deployment_RolloutSpec_Input! + ): deployment_RolloutSpec! @httpOperation(subgraph: "api", path: "/api/v1/deployment/{args.namespace}/{args.deployment}/rollback", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: PUT, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """create a Namespace""" + handleCreateNamespace( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: namespace_NamespaceSpec_Input! + ): namespace_NamespaceSpec! @httpOperation(subgraph: "api", path: "/api/v1/namespace", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: POST, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """scales ReplicationController to a number of replicas""" + handleUpdateReplicasCount( + """namespace of the ReplicationController""" + namespace: String! + """name of the ReplicationController""" + replicationController: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: replicationcontroller_ReplicationControllerSpec_Input! + ): JSON @httpOperation(subgraph: "api", path: "/api/v1/replicationcontroller/{args.namespace}/{args.replicationController}/update/pod", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: POST, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """scales a non-namespaced resource""" + handleScaleResource( + """kind of the resource""" + kind: String! + """namespace of the resource""" + namespace: String! + """name of the resource""" + name: String! + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + ): scaling_ReplicaCounts @httpOperation(subgraph: "api", path: "/api/v1/scale/{args.kind}/{args.namespace}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: PUT, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") @httpOperation(subgraph: "api", path: "/api/v1/scale/{args.kind}/{args.name}", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: PUT, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") + """stores ImagePullSecret in a Kubernetes Secret""" + handleCreateImagePullSecret( + """ + Comma delimited string used to apply filtering: 'propertyName,filterValue' + """ + filterBy: String + """Name of the column to sort by""" + sortBy: String + """Number of items to return when pagination is applied""" + itemsPerPage: String + """Page number to return items from""" + page: String + """Metric names to download""" + metricNames: String + """Aggregations to be performed for each metric (default: sum)""" + aggregations: String + input: secret_ImagePullSecretSpec_Input! + ): secret_Secret @httpOperation(subgraph: "api", path: "/api/v1/secret", operationSpecificHeaders: "{\"Content-Type\":\"application/json\",\"Accept\":\"application/json\"}", httpMethod: POST, queryParamArgMap: "{\"filterBy\":\"filterBy\",\"sortBy\":\"sortBy\",\"itemsPerPage\":\"itemsPerPage\",\"page\":\"page\",\"metricNames\":\"metricNames\",\"aggregations\":\"aggregations\"}") +} + +type runtime_Unknown { + ContentEncoding: String! + ContentType: String! + apiVersion: String + kind: String +} + +input runtime_Unknown_Input { + ContentEncoding: String! + ContentType: String! + apiVersion: String + kind: String +} + +type deployment_AppDeploymentSpec { + containerCommand: String! + containerCommandArgs: String! + containerImage: String! + cpuRequirement: String! + description: String! + imagePullSecret: String! + isExternal: Boolean! + labels: [deployment_Label]! + memoryRequirement: String! + name: String! + namespace: String! + portMappings: [deployment_PortMapping]! + replicas: Int! + runAsPrivileged: Boolean! + variables: [deployment_EnvironmentVariable]! +} + +type deployment_Label { + key: String! + value: String! +} + +type deployment_PortMapping { + port: Int! + protocol: String! + targetPort: Int! +} + +type deployment_EnvironmentVariable { + name: String! + value: String! +} + +input deployment_AppDeploymentSpec_Input { + containerCommand: String! + containerCommandArgs: String! + containerImage: String! + cpuRequirement: String! + description: String! + imagePullSecret: String! + isExternal: Boolean! + labels: [deployment_Label_Input]! + memoryRequirement: String! + name: String! + namespace: String! + portMappings: [deployment_PortMapping_Input]! + replicas: Int! + runAsPrivileged: Boolean! + variables: [deployment_EnvironmentVariable_Input]! +} + +input deployment_Label_Input { + key: String! + value: String! +} + +input deployment_PortMapping_Input { + port: Int! + protocol: String! + targetPort: Int! +} + +input deployment_EnvironmentVariable_Input { + name: String! + value: String! +} + +type validation_ImageReferenceValidity { + reason: String! + valid: Boolean! +} + +input validation_ImageReferenceValiditySpec_Input { + reference: String! +} + +type validation_AppNameValidity { + valid: Boolean! +} + +input validation_AppNameValiditySpec_Input { + name: String! + namespace: String! +} + +type validation_ProtocolValidity { + valid: Boolean! +} + +input validation_ProtocolValiditySpec_Input { + isExternal: Boolean! + protocol: String! +} + +type deployment_AppDeploymentFromFileResponse { + content: String! + error: String! + name: String! +} + +input deployment_AppDeploymentFromFileSpec_Input { + content: String! + name: String! + namespace: String! + validate: Boolean! +} + +type deployment_RolloutSpec { + revision: String! +} + +input deployment_RolloutSpec_Input { + revision: String! +} + +type namespace_NamespaceSpec { + name: String! +} + +input namespace_NamespaceSpec_Input { + name: String! +} + +input replicationcontroller_ReplicationControllerSpec_Input { + replicas: Int! +} + +input secret_ImagePullSecretSpec_Input { + data: String! + name: String! + namespace: String! +} + +scalar ObjMap + +enum HTTPMethod { + GET + HEAD + POST + PUT + DELETE + CONNECT + OPTIONS + TRACE + PATCH +} \ No newline at end of file diff --git a/modules/web/yarn.lock b/modules/web/yarn.lock index e4c14dd986d7..b79f92861085 100644 --- a/modules/web/yarn.lock +++ b/modules/web/yarn.lock @@ -539,6 +539,35 @@ __metadata: languageName: node linkType: hard +"@ardatan/relay-compiler@npm:12.0.0": + version: 12.0.0 + resolution: "@ardatan/relay-compiler@npm:12.0.0" + dependencies: + "@babel/core": ^7.14.0 + "@babel/generator": ^7.14.0 + "@babel/parser": ^7.14.0 + "@babel/runtime": ^7.0.0 + "@babel/traverse": ^7.14.0 + "@babel/types": ^7.0.0 + babel-preset-fbjs: ^3.4.0 + chalk: ^4.0.0 + fb-watchman: ^2.0.0 + fbjs: ^3.0.0 + glob: ^7.1.1 + immutable: ~3.7.6 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + relay-runtime: 12.0.0 + signedsource: ^1.0.0 + yargs: ^15.3.1 + peerDependencies: + graphql: "*" + bin: + relay-compiler: bin/relay-compiler + checksum: f0cec120d02961ee8652e0dde72d9e425bc97cad5d0f767d8764cfd30952294eb2838432f33e4da8bb6999d0c13dcd1df128280666bfea373294d98aa8033ae7 + languageName: node + linkType: hard + "@assemblyscript/loader@npm:^0.10.1": version: 0.10.1 resolution: "@assemblyscript/loader@npm:0.10.1" @@ -556,7 +585,7 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.5": +"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 @@ -609,7 +638,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.24.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9": +"@babel/core@npm:7.24.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.14.0, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.9": version: 7.24.0 resolution: "@babel/core@npm:7.24.0" dependencies: @@ -644,7 +673,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.22.5, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.22.5, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" dependencies: @@ -674,7 +703,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9, @babel/helper-compilation-targets@npm:^7.23.6": +"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9, @babel/helper-compilation-targets@npm:^7.23.6": version: 7.23.6 resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: @@ -687,7 +716,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.22.15": +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.15": version: 7.24.0 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.0" dependencies: @@ -931,7 +960,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.10.3, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.10.3, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0": version: 7.24.0 resolution: "@babel/parser@npm:7.24.0" bin: @@ -990,6 +1019,33 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-class-properties@npm:^7.0.0": + version: 7.18.6 + resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 + languageName: node + linkType: hard + +"@babel/plugin-proposal-object-rest-spread@npm:^7.0.0": + version: 7.20.7 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" + dependencies: + "@babel/compat-data": ^7.20.5 + "@babel/helper-compilation-targets": ^7.20.7 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.20.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 + languageName: node + linkType: hard + "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": version: 7.21.0-placeholder-for-preset-env.2 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" @@ -1033,7 +1089,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": +"@babel/plugin-syntax-class-properties@npm:^7.0.0, @babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": version: 7.12.13 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" dependencies: @@ -1077,7 +1133,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.22.5, @babel/plugin-syntax-import-assertions@npm:^7.23.3": +"@babel/plugin-syntax-flow@npm:^7.0.0, @babel/plugin-syntax-flow@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-flow@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c6e6f355d6ace5f4a9e7bb19f1fed2398aeb9b62c4c671a189d81b124f9f5bb77c4225b6e85e19339268c60a021c1e49104e450375de5e6bb70612190d9678af + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:^7.20.0, @babel/plugin-syntax-import-assertions@npm:^7.22.5, @babel/plugin-syntax-import-assertions@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" dependencies: @@ -1121,7 +1188,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.7.2": +"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.23.3 resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" dependencies: @@ -1165,7 +1232,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": +"@babel/plugin-syntax-object-rest-spread@npm:^7.0.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" dependencies: @@ -1243,7 +1310,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.22.5, @babel/plugin-transform-arrow-functions@npm:^7.23.3": +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.22.5, @babel/plugin-transform-arrow-functions@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" dependencies: @@ -1294,7 +1361,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.22.5, @babel/plugin-transform-block-scoped-functions@npm:^7.23.3": +"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.22.5, @babel/plugin-transform-block-scoped-functions@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" dependencies: @@ -1305,7 +1372,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.22.5, @babel/plugin-transform-block-scoping@npm:^7.23.4": +"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.22.5, @babel/plugin-transform-block-scoping@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" dependencies: @@ -1341,7 +1408,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.22.6, @babel/plugin-transform-classes@npm:^7.23.8": +"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.22.6, @babel/plugin-transform-classes@npm:^7.23.8": version: 7.23.8 resolution: "@babel/plugin-transform-classes@npm:7.23.8" dependencies: @@ -1359,7 +1426,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.22.5, @babel/plugin-transform-computed-properties@npm:^7.23.3": +"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.22.5, @babel/plugin-transform-computed-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" dependencies: @@ -1371,7 +1438,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.22.5, @babel/plugin-transform-destructuring@npm:^7.23.3": +"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.22.5, @babel/plugin-transform-destructuring@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" dependencies: @@ -1441,7 +1508,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.22.5, @babel/plugin-transform-for-of@npm:^7.23.6": +"@babel/plugin-transform-flow-strip-types@npm:^7.0.0": + version: 7.23.3 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-flow": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: de38cc5cf948bc19405ea041292181527a36f59f08d787a590415fac36e9b0c7992f0d3e2fd3b9402089bafdaa1a893291a0edf15beebfd29bdedbbe582fee9b + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.22.5, @babel/plugin-transform-for-of@npm:^7.23.6": version: 7.23.6 resolution: "@babel/plugin-transform-for-of@npm:7.23.6" dependencies: @@ -1453,7 +1532,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.22.5, @babel/plugin-transform-function-name@npm:^7.23.3": +"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.22.5, @babel/plugin-transform-function-name@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-function-name@npm:7.23.3" dependencies: @@ -1478,7 +1557,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.22.5, @babel/plugin-transform-literals@npm:^7.23.3": +"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.22.5, @babel/plugin-transform-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-literals@npm:7.23.3" dependencies: @@ -1501,7 +1580,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.22.5, @babel/plugin-transform-member-expression-literals@npm:^7.23.3": +"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.22.5, @babel/plugin-transform-member-expression-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" dependencies: @@ -1524,7 +1603,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.22.5, @babel/plugin-transform-modules-commonjs@npm:^7.23.3": +"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.22.5, @babel/plugin-transform-modules-commonjs@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" dependencies: @@ -1625,7 +1704,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.22.5, @babel/plugin-transform-object-super@npm:^7.23.3": +"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.22.5, @babel/plugin-transform-object-super@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-object-super@npm:7.23.3" dependencies: @@ -1662,7 +1741,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.22.5, @babel/plugin-transform-parameters@npm:^7.23.3": +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.22.5, @babel/plugin-transform-parameters@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-parameters@npm:7.23.3" dependencies: @@ -1699,7 +1778,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.22.5, @babel/plugin-transform-property-literals@npm:^7.23.3": +"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.22.5, @babel/plugin-transform-property-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" dependencies: @@ -1710,6 +1789,32 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-display-name@npm:^7.0.0": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7f86964e8434d3ddbd3c81d2690c9b66dbf1cd8bd9512e2e24500e9fa8cf378bc52c0853270b3b82143aba5965aec04721df7abdb768f952b44f5c6e0b198779 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx@npm:^7.0.0": + version: 7.23.4 + resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-jsx": ^7.23.3 + "@babel/types": ^7.23.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a + languageName: node + linkType: hard + "@babel/plugin-transform-regenerator@npm:^7.22.5, @babel/plugin-transform-regenerator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" @@ -1749,7 +1854,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.22.5, @babel/plugin-transform-shorthand-properties@npm:^7.23.3": +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.22.5, @babel/plugin-transform-shorthand-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" dependencies: @@ -1760,7 +1865,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.22.5, @babel/plugin-transform-spread@npm:^7.23.3": +"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.22.5, @babel/plugin-transform-spread@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-spread@npm:7.23.3" dependencies: @@ -1783,7 +1888,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.22.5, @babel/plugin-transform-template-literals@npm:^7.23.3": +"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.22.5, @babel/plugin-transform-template-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" dependencies: @@ -2091,7 +2196,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.8.4": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.8.4": version: 7.24.0 resolution: "@babel/runtime@npm:7.24.0" dependencies: @@ -2122,7 +2227,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.10.3, @babel/traverse@npm:^7.22.5, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.24.0": +"@babel/traverse@npm:^7.10.3, @babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.22.5, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.24.0": version: 7.24.0 resolution: "@babel/traverse@npm:7.24.0" dependencies: @@ -2140,7 +2245,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.10.3, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.10.3, @babel/types@npm:^7.16.8, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.24.0 resolution: "@babel/types@npm:7.24.0" dependencies: @@ -2268,6 +2373,52 @@ __metadata: languageName: node linkType: hard +"@envelop/core@npm:^5.0.0": + version: 5.0.0 + resolution: "@envelop/core@npm:5.0.0" + dependencies: + "@envelop/types": 5.0.0 + tslib: ^2.5.0 + checksum: a3b6ac557c4529aff734bea2181d948c7626903260ebe84e4d9004c16f49b22196855934f7d0b3fcca44252088c4fa6641edc59075a2a3bb586c1fa4805c0990 + languageName: node + linkType: hard + +"@envelop/extended-validation@npm:^4.0.0": + version: 4.0.0 + resolution: "@envelop/extended-validation@npm:4.0.0" + dependencies: + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.5.0 + peerDependencies: + "@envelop/core": ^5.0.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: b784eaa15068409a3321dfbf39f198b732378b4b8aacd89c38a970b0e022541ecb5cd037e772b74fe1f3a7c89e4ab73a321ef339c67d13ad16aacd70db3a0a39 + languageName: node + linkType: hard + +"@envelop/graphql-jit@npm:^8.0.0": + version: 8.0.1 + resolution: "@envelop/graphql-jit@npm:8.0.1" + dependencies: + graphql-jit: 0.8.2 + tslib: ^2.5.0 + value-or-promise: ^1.0.12 + peerDependencies: + "@envelop/core": ^5.0.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 3510b56f505a7f65f6c9508240154d6a43a666ec520701b98c4ea7209dc3f94809425fec44ee373be8d317f9fab5839a56aa6008d742a9b97c00eb0c7d97361e + languageName: node + linkType: hard + +"@envelop/types@npm:5.0.0": + version: 5.0.0 + resolution: "@envelop/types@npm:5.0.0" + dependencies: + tslib: ^2.5.0 + checksum: 1098f821981d2b59a453f5f21ac3b2ea9fcf6bd253a564f0317f67b7469ff17e53921ea99a3b528cb5c95e0671460d68b55150836ce635788576500317a8ad9b + languageName: node + linkType: hard + "@esbuild/aix-ppc64@npm:0.20.1": version: 0.20.1 resolution: "@esbuild/aix-ppc64@npm:0.20.1" @@ -2730,59 +2881,921 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.20.1": - version: 0.20.1 - resolution: "@esbuild/win32-x64@npm:0.20.1" - conditions: os=win32 & cpu=x64 +"@esbuild/win32-x64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/win32-x64@npm:0.20.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.10.0 + resolution: "@eslint-community/regexpp@npm:4.10.0" + checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.6.0 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 + languageName: node + linkType: hard + +"@eslint/js@npm:8.57.0": + version: 8.57.0 + resolution: "@eslint/js@npm:8.57.0" + checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb + languageName: node + linkType: hard + +"@gar/promisify@npm:^1.1.3": + version: 1.1.3 + resolution: "@gar/promisify@npm:1.1.3" + checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 + languageName: node + linkType: hard + +"@graphql-codegen/core@npm:^4.0.0": + version: 4.0.2 + resolution: "@graphql-codegen/core@npm:4.0.2" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.3 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 5fda4e843174aacd4a481b73b4d259fa2df7ffe4200bd06e95ecd4b3f43aa5969deeaeb51f6cf15a542e99ee5756c3e02a29d9d2ff9891af40e234a8f68ead4d + languageName: node + linkType: hard + +"@graphql-codegen/plugin-helpers@npm:^2.7.2": + version: 2.7.2 + resolution: "@graphql-codegen/plugin-helpers@npm:2.7.2" + dependencies: + "@graphql-tools/utils": ^8.8.0 + change-case-all: 1.0.14 + common-tags: 1.8.2 + import-from: 4.0.0 + lodash: ~4.17.0 + tslib: ~2.4.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 66e0d507ad5db60b67092ebf7632d464d56ab446ac8fd87c293e00d9016944912d8cf9199e3e026b0a9247a50f50c4118a44f49e13675db64211652cd6259b05 + languageName: node + linkType: hard + +"@graphql-codegen/plugin-helpers@npm:^3.0.0": + version: 3.1.2 + resolution: "@graphql-codegen/plugin-helpers@npm:3.1.2" + dependencies: + "@graphql-tools/utils": ^9.0.0 + change-case-all: 1.0.15 + common-tags: 1.8.2 + import-from: 4.0.0 + lodash: ~4.17.0 + tslib: ~2.4.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 4d0c615738570681b5ffd3c07305a35d6aa3e5fd87c9199c0a670b95529ab865b1df978ce584d5b415107a567ac484e56a48db129a6d1d2eb8a254fbd3260e39 + languageName: node + linkType: hard + +"@graphql-codegen/plugin-helpers@npm:^5.0.3": + version: 5.0.3 + resolution: "@graphql-codegen/plugin-helpers@npm:5.0.3" + dependencies: + "@graphql-tools/utils": ^10.0.0 + change-case-all: 1.0.15 + common-tags: 1.8.2 + import-from: 4.0.0 + lodash: ~4.17.0 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 7116745edd88cabc61aa192c2a3632844950f00e33040f68f0ccc41bb2d6bf3a14fbeaa67d6d5ea01193ef1e709a9b5bd09860c3b3e262dacea0f1127ee61789 + languageName: node + linkType: hard + +"@graphql-codegen/schema-ast@npm:^4.0.2": + version: 4.0.2 + resolution: "@graphql-codegen/schema-ast@npm:4.0.2" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.3 + "@graphql-tools/utils": ^10.0.0 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: f6097ceac7ef1266487c4937c916c6c67034c3decad3f714daa5370d5a4d68996be70f850a8765ccc71fa234ddb7f1ba7ffc02ba97a761930859196a96348e01 + languageName: node + linkType: hard + +"@graphql-codegen/typed-document-node@npm:^5.0.0": + version: 5.0.6 + resolution: "@graphql-codegen/typed-document-node@npm:5.0.6" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.3 + "@graphql-codegen/visitor-plugin-common": 5.1.0 + auto-bind: ~4.0.0 + change-case-all: 1.0.15 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 724d531e22ec6481d245b4e13892c37ff419aa6ab61d883beac89b4f3507c7850730f91b260b2b5a82c466265f9c4567a528798265274ca40ca80e8c99a0c661 + languageName: node + linkType: hard + +"@graphql-codegen/typescript-generic-sdk@npm:^3.1.0": + version: 3.1.0 + resolution: "@graphql-codegen/typescript-generic-sdk@npm:3.1.0" + dependencies: + "@graphql-codegen/plugin-helpers": ^3.0.0 + "@graphql-codegen/visitor-plugin-common": 2.13.1 + auto-bind: ~4.0.0 + tslib: ~2.4.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-tag: ^2.0.0 + checksum: b2cefeabd411cb014f8a249fea2679633e5667480316f321e11fbf782106fd15a1b85e8a6c7b6d97748336634b5131215b4e7ddb4bdddcf87db8b4cfc9a38e44 + languageName: node + linkType: hard + +"@graphql-codegen/typescript-operations@npm:^4.0.0": + version: 4.2.0 + resolution: "@graphql-codegen/typescript-operations@npm:4.2.0" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.3 + "@graphql-codegen/typescript": ^4.0.6 + "@graphql-codegen/visitor-plugin-common": 5.1.0 + auto-bind: ~4.0.0 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 213ef154b2325290fd512dad428e0c330b63c7c2e3c13ffa0b8e020b8824a64f123f2956f35f33308f3e9bd6167db419e26171213e0c5e613b1484682cd72496 + languageName: node + linkType: hard + +"@graphql-codegen/typescript-resolvers@npm:^4.0.0": + version: 4.0.6 + resolution: "@graphql-codegen/typescript-resolvers@npm:4.0.6" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.3 + "@graphql-codegen/typescript": ^4.0.6 + "@graphql-codegen/visitor-plugin-common": 5.1.0 + "@graphql-tools/utils": ^10.0.0 + auto-bind: ~4.0.0 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 1d395486e0046cf1df1ccf83d884e8340390aeb8c6407fc3380c6bf6e224e2cccb4cd492f41ed542459e2e4ee08cd21e58617889a99d5ef20a715e82a750065a + languageName: node + linkType: hard + +"@graphql-codegen/typescript@npm:^4.0.0, @graphql-codegen/typescript@npm:^4.0.6": + version: 4.0.6 + resolution: "@graphql-codegen/typescript@npm:4.0.6" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.3 + "@graphql-codegen/schema-ast": ^4.0.2 + "@graphql-codegen/visitor-plugin-common": 5.1.0 + auto-bind: ~4.0.0 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 1fca995f2d68af4cdeaa14505463c7bbc97d99e767c2cf40329bd46e32730e52dcde20083e56ba2184292de5ce3f8cb5817dd2cd43054082546ab06dd758dad9 + languageName: node + linkType: hard + +"@graphql-codegen/visitor-plugin-common@npm:2.13.1": + version: 2.13.1 + resolution: "@graphql-codegen/visitor-plugin-common@npm:2.13.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.7.2 + "@graphql-tools/optimize": ^1.3.0 + "@graphql-tools/relay-operation-optimizer": ^6.5.0 + "@graphql-tools/utils": ^8.8.0 + auto-bind: ~4.0.0 + change-case-all: 1.0.14 + dependency-graph: ^0.11.0 + graphql-tag: ^2.11.0 + parse-filepath: ^1.0.2 + tslib: ~2.4.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 0c329aa6e435602f2f6c1569ec2091b7850f58cc5dca7ac763c38c82588545ec1110c1de587f5f3949b11ff96f94401d1e63e329607d78424583b276fd08f1ae + languageName: node + linkType: hard + +"@graphql-codegen/visitor-plugin-common@npm:5.1.0": + version: 5.1.0 + resolution: "@graphql-codegen/visitor-plugin-common@npm:5.1.0" + dependencies: + "@graphql-codegen/plugin-helpers": ^5.0.3 + "@graphql-tools/optimize": ^2.0.0 + "@graphql-tools/relay-operation-optimizer": ^7.0.0 + "@graphql-tools/utils": ^10.0.0 + auto-bind: ~4.0.0 + change-case-all: 1.0.15 + dependency-graph: ^0.11.0 + graphql-tag: ^2.11.0 + parse-filepath: ^1.0.2 + tslib: ~2.6.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 7f187de6d4b0f6285e37e1bc8e72c0d158ca00c79eef4bbb7ae9c174790002ef144000acf85b406fbeef2f76f6792fc3ec7bb7ca0244ffaf791c67eaa2fe1f02 + languageName: node + linkType: hard + +"@graphql-inspector/core@npm:5.0.2": + version: 5.0.2 + resolution: "@graphql-inspector/core@npm:5.0.2" + dependencies: + dependency-graph: 0.11.0 + object-inspect: 1.12.3 + tslib: 2.6.2 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 68f0852476c3dccec389c6c82db07bcda948a5bc8b6b3cc470a5919c939424ffbae1e1148339739277d1b639a4d0de0ec0976f9af620875228cdb1f1642f38a3 + languageName: node + linkType: hard + +"@graphql-mesh/cache-localforage@npm:^0.97.1": + version: 0.97.1 + resolution: "@graphql-mesh/cache-localforage@npm:0.97.1" + dependencies: + localforage: 1.10.0 + peerDependencies: + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + graphql: "*" + tslib: ^2.4.0 + checksum: c825a30f48e1b28037a6333634006e0ba0547f0051426422cb378fc60e809c21e9ea3ab6876b0c8ba3e2c57d1a9c2cab3c20d8a1296a821d710dc39133cdfd3c + languageName: node + linkType: hard + +"@graphql-mesh/cli@npm:0.89.0": + version: 0.89.0 + resolution: "@graphql-mesh/cli@npm:0.89.0" + dependencies: + "@graphql-codegen/core": ^4.0.0 + "@graphql-codegen/typed-document-node": ^5.0.0 + "@graphql-codegen/typescript": ^4.0.0 + "@graphql-codegen/typescript-generic-sdk": ^3.1.0 + "@graphql-codegen/typescript-operations": ^4.0.0 + "@graphql-codegen/typescript-resolvers": ^4.0.0 + "@graphql-mesh/config": ^0.99.0 + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/http": ^0.98.0 + "@graphql-mesh/runtime": ^0.98.0 + "@graphql-mesh/store": ^0.97.0 + "@graphql-mesh/types": ^0.97.0 + "@graphql-mesh/utils": ^0.97.0 + "@graphql-tools/utils": ^10.0.1 + ajv: ^8.12.0 + change-case: ^4.1.2 + cosmiconfig: ^9.0.0 + dotenv: ^16.0.3 + graphql-import-node: ^0.0.5 + graphql-ws: ^5.12.1 + json-bigint-patch: ^0.0.8 + json5: ^2.2.3 + mkdirp: ^3.0.0 + node-libcurl: ^4.0.0 + open: ^7.4.2 + pascal-case: ^3.1.2 + rimraf: ^5.0.0 + ts-node: ^10.9.1 + tsconfig-paths: ^4.2.0 + tslib: ^2.4.0 + typescript: ^5.0.4 + uWebSockets.js: "github:uNetworking/uWebSockets.js#semver:^20" + yargs: ^17.7.1 + peerDependencies: + graphql: "*" + dependenciesMeta: + node-libcurl: + optional: true + bin: + gql-mesh: cjs/bin.js + graphql-mesh: cjs/bin.js + graphql-mesh-esm: esm/bin.js + mesh: cjs/bin.js + checksum: 9fa53d4b1f8db7e83ec703b2bd14ddd59c13695f4aeb7ec92dbcd8aac45bc66c0131b8022539e57c5da35ea58a335edabb794b5a1ab79220da6516596179689b + languageName: node + linkType: hard + +"@graphql-mesh/config@npm:^0.99.0": + version: 0.99.1 + resolution: "@graphql-mesh/config@npm:0.99.1" + dependencies: + "@envelop/core": ^5.0.0 + "@graphql-mesh/cache-localforage": ^0.97.1 + "@graphql-mesh/merger-bare": ^0.97.1 + "@graphql-mesh/merger-stitching": ^0.97.1 + "@graphql-tools/code-file-loader": ^8.0.0 + "@graphql-tools/graphql-file-loader": ^8.0.0 + "@graphql-tools/load": ^8.0.0 + "@graphql-yoga/plugin-persisted-operations": ^3.0.0 + "@whatwg-node/fetch": ^0.9.0 + camel-case: ^4.1.2 + param-case: ^3.0.4 + pascal-case: ^3.1.2 + peerDependencies: + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/runtime": ^0.98.1 + "@graphql-mesh/store": ^0.97.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + tslib: ^2.4.0 + checksum: 2a437891e1235ce74084d299fba0a0220c7e036378c624f4a6ebaea9d3b083249fb9e48a29aebaf06a39c63c761e27940b51f20861f810ce31e8a7e94bbc87e5 + languageName: node + linkType: hard + +"@graphql-mesh/cross-helpers@npm:^0.4.1": + version: 0.4.1 + resolution: "@graphql-mesh/cross-helpers@npm:0.4.1" + dependencies: + path-browserify: 1.0.1 + peerDependencies: + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + checksum: 611dd9755753377b8f0a465665091198a39e07e6e3efaba8f77cac486fe09c9a2d3cbc934de1dbe46b5415f42d8e5ff5b853f1c80d7b2ee27180c60d87ea9f0b + languageName: node + linkType: hard + +"@graphql-mesh/http@npm:^0.98.0": + version: 0.98.1 + resolution: "@graphql-mesh/http@npm:0.98.1" + dependencies: + "@whatwg-node/server": ^0.9.0 + graphql-yoga: ^5.1.1 + peerDependencies: + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/runtime": ^0.98.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + graphql: "*" + tslib: ^2.4.0 + checksum: 5598ab0b13502e949021d4283a95063402ce40dbdfe09faf1806c2a9c61fe348ea9632596f0b008a87ca865a05c45bdd82ebf7f45535391f93a34513de208e7c + languageName: node + linkType: hard + +"@graphql-mesh/merger-bare@npm:^0.97.1": + version: 0.97.1 + resolution: "@graphql-mesh/merger-bare@npm:0.97.1" + dependencies: + "@graphql-mesh/merger-stitching": 0.97.1 + "@graphql-tools/schema": 10.0.3 + peerDependencies: + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + tslib: ^2.4.0 + checksum: 791681e836497b582767c238fc588baeb1d94cfce3b3c0c478df1abe4b1ccce46488ae83b3aeca9db3408fa194015c2426e6c05b2d292dcaa515b615b45be347 + languageName: node + linkType: hard + +"@graphql-mesh/merger-stitching@npm:0.97.1, @graphql-mesh/merger-stitching@npm:^0.97.1": + version: 0.97.1 + resolution: "@graphql-mesh/merger-stitching@npm:0.97.1" + dependencies: + "@graphql-tools/delegate": ^10.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/stitch": ^9.0.0 + peerDependencies: + "@graphql-mesh/store": ^0.97.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + tslib: ^2.4.0 + checksum: 5e1b22adeeb050c589f7f581af7795a9f0ee7fe4a40e20bb1f58639ef31b0470967be2f4cf89da5567e3888bc2a7f25e8df2067fb3d5769f39c64a24dac86a5f + languageName: node + linkType: hard + +"@graphql-mesh/openapi@npm:0.99.2": + version: 0.99.2 + resolution: "@graphql-mesh/openapi@npm:0.99.2" + dependencies: + "@graphql-mesh/string-interpolation": 0.5.3 + "@omnigraph/openapi": 0.99.2 + peerDependencies: + "@graphql-mesh/store": ^0.97.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + graphql: "*" + tslib: ^2.4.0 + checksum: bd940de7f1281122cd9150e4464e7d9e28e55070a2ffb91410a531badbfe2250cd21a529f518e57cd8ea05d4357637042f1baff29563b1090ab8fb2f22f7ce85 + languageName: node + linkType: hard + +"@graphql-mesh/runtime@npm:0.98.0": + version: 0.98.0 + resolution: "@graphql-mesh/runtime@npm:0.98.0" + dependencies: + "@envelop/core": ^5.0.0 + "@envelop/extended-validation": ^4.0.0 + "@envelop/graphql-jit": ^8.0.0 + "@graphql-mesh/string-interpolation": ^0.5.3 + "@graphql-tools/batch-delegate": ^9.0.0 + "@graphql-tools/delegate": ^10.0.0 + "@graphql-tools/executor": ^1.2.0 + "@graphql-tools/wrap": ^10.0.0 + "@whatwg-node/fetch": ^0.9.0 + graphql-jit: 0.8.2 + peerDependencies: + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/types": ^0.97.0 + "@graphql-mesh/utils": ^0.97.0 + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + tslib: ^2.4.0 + checksum: e5142a717a60069da3ea4b1e352639edbf6f427892baf38bd76c950f59a3b189cd2d12e141f190df826394a044cdf362cf1a73d43381896cfb57d12ea71891d5 + languageName: node + linkType: hard + +"@graphql-mesh/runtime@npm:^0.98.0": + version: 0.98.1 + resolution: "@graphql-mesh/runtime@npm:0.98.1" + dependencies: + "@envelop/core": ^5.0.0 + "@envelop/extended-validation": ^4.0.0 + "@envelop/graphql-jit": ^8.0.0 + "@graphql-mesh/string-interpolation": ^0.5.3 + "@graphql-tools/batch-delegate": ^9.0.0 + "@graphql-tools/delegate": ^10.0.0 + "@graphql-tools/executor": ^1.2.0 + "@graphql-tools/wrap": ^10.0.0 + "@whatwg-node/fetch": ^0.9.0 + graphql-jit: 0.8.2 + peerDependencies: + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + tslib: ^2.4.0 + checksum: 7620d5a67b01e97c380962cd6f162014a2f4c428c91fcab12c4b066cf7fee3fbe2ac099b8fd4ca1f79800e4e8d19af622d183124ff4faacb7bd08752b9806c01 + languageName: node + linkType: hard + +"@graphql-mesh/store@npm:^0.97.0": + version: 0.97.1 + resolution: "@graphql-mesh/store@npm:0.97.1" + dependencies: + "@graphql-inspector/core": 5.0.2 + peerDependencies: + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + tslib: ^2.4.0 + checksum: eee383f2c5820ea6be4b311dfd115362d4310d64db3b4313b71c2fd58ee9c3359aab8ab31be4659ed8f4ce8f41f55058bcd0a9a8d8903d65724b370f7a422865 + languageName: node + linkType: hard + +"@graphql-mesh/string-interpolation@npm:0.5.3, @graphql-mesh/string-interpolation@npm:^0.5.3": + version: 0.5.3 + resolution: "@graphql-mesh/string-interpolation@npm:0.5.3" + dependencies: + dayjs: 1.11.10 + json-pointer: 0.6.2 + lodash.get: 4.4.2 + peerDependencies: + graphql: "*" + tslib: ^2.4.0 + checksum: f878b0a6e1052ea0e0bf94694983b3c416ff3da776661297e55904b9f16c1b151577a7673188b1c4924a55415b90dec80c67c14135dbbf305d84cf60b69b6e12 + languageName: node + linkType: hard + +"@graphql-mesh/transport-common@npm:^0.1.1": + version: 0.1.1 + resolution: "@graphql-mesh/transport-common@npm:0.1.1" + dependencies: + "@graphql-tools/delegate": ^10.0.3 + "@graphql-tools/utils": ^10.0.12 + peerDependencies: + "@graphql-mesh/types": ^0.97.1 + graphql: "*" + tslib: ^2.4.0 + checksum: 485c041ad07aabbe200b3723f68149a43f4922b3fdf105b53b2f505e19c09926f63eade3714b230d67ff0959bba099e88ad08f869cdacd4c59f36c3941763779 + languageName: node + linkType: hard + +"@graphql-mesh/transport-rest@npm:^0.1.2": + version: 0.1.2 + resolution: "@graphql-mesh/transport-rest@npm:0.1.2" + dependencies: + "@graphql-mesh/string-interpolation": ^0.5.3 + dset: ^3.1.3 + graphql-fields: ^2.0.3 + graphql-scalars: ^1.22.4 + qs: 6.12.0 + url-join: 4.0.1 + peerDependencies: + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/transport-common": ^0.1.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + "@graphql-tools/utils": ^10.0.12 + "@whatwg-node/fetch": ^0.9.15 + graphql: "*" + tslib: ^2.4.0 + checksum: 39b9470739fcdcb40cc196d6f45bfbe39e5b1cc63df2dd623b11431f35e92d1b3fddd282aede5683cb66a8e8e0176acf20e2e5db220027ba3e51d369f245f457 + languageName: node + linkType: hard + +"@graphql-mesh/types@npm:^0.97.0": + version: 0.97.1 + resolution: "@graphql-mesh/types@npm:0.97.1" + dependencies: + "@graphql-tools/batch-delegate": ^9.0.0 + "@graphql-tools/delegate": ^10.0.0 + "@graphql-typed-document-node/core": ^3.2.0 + peerDependencies: + "@graphql-mesh/store": ^0.97.1 + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + tslib: ^2.4.0 + checksum: a6e5f52924d3031bae3c82b4dce9bd91799dfdf0e534b95ea341dd8b586523bfe67eef010500acdd1759a03df75419aa62211f1d481a082a332d5a7e8e004094 + languageName: node + linkType: hard + +"@graphql-mesh/utils@npm:^0.97.0": + version: 0.97.1 + resolution: "@graphql-mesh/utils@npm:0.97.1" + dependencies: + "@graphql-mesh/string-interpolation": ^0.5.3 + "@graphql-tools/delegate": ^10.0.0 + "@whatwg-node/fetch": ^0.9.13 + dset: ^3.1.2 + js-yaml: ^4.1.0 + lodash.get: ^4.4.2 + lodash.topath: ^4.5.2 + tiny-lru: ^11.0.0 + peerDependencies: + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + tslib: ^2.4.0 + checksum: 8e85120d3f7d0117960e2a56b815c1cb2b30a1030deee9f66dcdfd7e63610a4c3351a21c18a4973eca1b79ee77d835421a8c8450f23f874ff8dd764657cd8b06 + languageName: node + linkType: hard + +"@graphql-tools/batch-delegate@npm:^9.0.0, @graphql-tools/batch-delegate@npm:^9.0.1": + version: 9.0.1 + resolution: "@graphql-tools/batch-delegate@npm:9.0.1" + dependencies: + "@graphql-tools/delegate": ^10.0.4 + "@graphql-tools/utils": ^10.0.13 + dataloader: 2.2.2 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 22475bb38eef6742ad015084a9c653ce63d5d94041d8a16a616a07c31807dacf48a87ed31d1fbc58e8f3f5568c76733bf6cf7e6b2907139613471b3a4336a685 + languageName: node + linkType: hard + +"@graphql-tools/batch-execute@npm:^9.0.4": + version: 9.0.4 + resolution: "@graphql-tools/batch-execute@npm:9.0.4" + dependencies: + "@graphql-tools/utils": ^10.0.13 + dataloader: ^2.2.2 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: d547da2ca888a1ebd8552f1be1c353e88bdbcb85c745de3d869e22da7f1981b4621f950a22ce719c645cc6435bc683c77253d8f19a0baaf7d4058625f4ce8891 + languageName: node + linkType: hard + +"@graphql-tools/code-file-loader@npm:^8.0.0": + version: 8.1.1 + resolution: "@graphql-tools/code-file-loader@npm:8.1.1" + dependencies: + "@graphql-tools/graphql-tag-pluck": 8.3.0 + "@graphql-tools/utils": ^10.0.13 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 22965854f07d841281bcacba160031ba4e721f21f114c39f122e621c9dbae317e69252d8bf7b154079e640ff8505adcb573d3ca67e64a69caa81383d688956ee + languageName: node + linkType: hard + +"@graphql-tools/delegate@npm:^10.0.0, @graphql-tools/delegate@npm:^10.0.3, @graphql-tools/delegate@npm:^10.0.4": + version: 10.0.4 + resolution: "@graphql-tools/delegate@npm:10.0.4" + dependencies: + "@graphql-tools/batch-execute": ^9.0.4 + "@graphql-tools/executor": ^1.2.1 + "@graphql-tools/schema": ^10.0.3 + "@graphql-tools/utils": ^10.0.13 + dataloader: ^2.2.2 + tslib: ^2.5.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: c52ac690f3b97534c2c1291b676b087e638bb828eeb03ee52456b447120e85bc989b381d43239b09d8601473d30af4b404bc8847ba18201e15653d8773082859 + languageName: node + linkType: hard + +"@graphql-tools/executor@npm:^1.0.0, @graphql-tools/executor@npm:^1.2.0, @graphql-tools/executor@npm:^1.2.1": + version: 1.2.2 + resolution: "@graphql-tools/executor@npm:1.2.2" + dependencies: + "@graphql-tools/utils": ^10.1.1 + "@graphql-typed-document-node/core": 3.2.0 + "@repeaterjs/repeater": ^3.0.4 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 6c7d568147471a6919d45071dd9c0551401e86ed21b22b74786d9f28b1cc11333c444dcdb388f48e4c3d007e40f11d0befa43c57b230af09263e5014737dfc12 + languageName: node + linkType: hard + +"@graphql-tools/graphql-file-loader@npm:^8.0.0": + version: 8.0.1 + resolution: "@graphql-tools/graphql-file-loader@npm:8.0.1" + dependencies: + "@graphql-tools/import": 7.0.1 + "@graphql-tools/utils": ^10.0.13 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 55fd5cc96ea063341e03be2fa72a6494e8fedb0cd09cc2a4664732fc81e57e5c67026f63ff9e6c1afc284bd303988cd1bda715c88100b8316b5e8cdf6da70a32 + languageName: node + linkType: hard + +"@graphql-tools/graphql-tag-pluck@npm:8.3.0": + version: 8.3.0 + resolution: "@graphql-tools/graphql-tag-pluck@npm:8.3.0" + dependencies: + "@babel/core": ^7.22.9 + "@babel/parser": ^7.16.8 + "@babel/plugin-syntax-import-assertions": ^7.20.0 + "@babel/traverse": ^7.16.8 + "@babel/types": ^7.16.8 + "@graphql-tools/utils": ^10.0.13 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 8c177320155624b8ec1505e9fe6a593593b4b707eb378a917f9467e66fdb980cb24d2722f1eb7b8595dd9b361270f72d61b22fb47361fb39438c73ff2d220bd5 + languageName: node + linkType: hard + +"@graphql-tools/import@npm:7.0.1": + version: 7.0.1 + resolution: "@graphql-tools/import@npm:7.0.1" + dependencies: + "@graphql-tools/utils": ^10.0.13 + resolve-from: 5.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: eb3596779e1dcebc3453eafdb459575531b30c01ce82c4fb779dccc9d5865ba7e5dbfef443836cd5ecc9250eb8e4001ec0b83878841c2f366d1643ccefc57267 + languageName: node + linkType: hard + +"@graphql-tools/load@npm:^8.0.0": + version: 8.0.2 + resolution: "@graphql-tools/load@npm:8.0.2" + dependencies: + "@graphql-tools/schema": ^10.0.3 + "@graphql-tools/utils": ^10.0.13 + p-limit: 3.1.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: ddc4bd9dcf5a799321fb1bd21a27887e3c8321003b1826efabff9aae5c189dd8cce0dffa0a94708ef7d64791daf7e73c8ff95cf2f7e036c131ef5eddccf38e34 + languageName: node + linkType: hard + +"@graphql-tools/merge@npm:^9.0.3": + version: 9.0.3 + resolution: "@graphql-tools/merge@npm:9.0.3" + dependencies: + "@graphql-tools/utils": ^10.0.13 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 6b027cac570fe7b63ec5b3aeb7d17939d017ec24da3288b38552cfaad1f131c8815f0aff1d79aa0133bb87d12187f73f75e5e01367e9d55419cdcf2aa91dbb3d + languageName: node + linkType: hard + +"@graphql-tools/optimize@npm:^1.3.0": + version: 1.4.0 + resolution: "@graphql-tools/optimize@npm:1.4.0" + dependencies: + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: bccbc596f2007ae706ee948e900f3174aa80ef043e8ae3467f735a10df0b31873bafdd20c0ef09b662171363a31e2d0859adb362bbf762da00245f8e9fd501b0 + languageName: node + linkType: hard + +"@graphql-tools/optimize@npm:^2.0.0": + version: 2.0.0 + resolution: "@graphql-tools/optimize@npm:2.0.0" + dependencies: + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 7f79c0e1852abc571308e887d27d613da5b797256c8c6eb6c5fe7ca77f09e61524778ae281cebc0b698c51d4fe1074e2b8e0d0627b8e2dcf505aa6ed09b49a2f + languageName: node + linkType: hard + +"@graphql-tools/relay-operation-optimizer@npm:^6.5.0": + version: 6.5.18 + resolution: "@graphql-tools/relay-operation-optimizer@npm:6.5.18" + dependencies: + "@ardatan/relay-compiler": 12.0.0 + "@graphql-tools/utils": ^9.2.1 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 56a8c7e6a0bf5fa4d5106276f69c08630a95659eb4300249b3dd28e2057ebb7e7815c51beadf98acdbf695cad5937988d16a3d01ca74fc120c76892968fbeb2b + languageName: node + linkType: hard + +"@graphql-tools/relay-operation-optimizer@npm:^7.0.0": + version: 7.0.1 + resolution: "@graphql-tools/relay-operation-optimizer@npm:7.0.1" + dependencies: + "@ardatan/relay-compiler": 12.0.0 + "@graphql-tools/utils": ^10.0.13 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 24a29aea91a0028d7624ae38fed1bfd387ecf5a0e297dbbca23c0f73c51956765db7517b2a75a5b3a6003ea5e3f025f0fc4f527eec22b05e7e25216dc6318797 + languageName: node + linkType: hard + +"@graphql-tools/schema@npm:10.0.3, @graphql-tools/schema@npm:^10.0.0, @graphql-tools/schema@npm:^10.0.3": + version: 10.0.3 + resolution: "@graphql-tools/schema@npm:10.0.3" + dependencies: + "@graphql-tools/merge": ^9.0.3 + "@graphql-tools/utils": ^10.0.13 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 23ed5a27d7dbd4171bf8d7fecf5bcd5a3dc840aae15bf58e0d39ed2f0538b8fe410f004d71e8820feb0c7bfb24118f49aaaf17d6a6967afd1418f87b92478c5d + languageName: node + linkType: hard + +"@graphql-tools/stitch@npm:^9.0.0": + version: 9.0.5 + resolution: "@graphql-tools/stitch@npm:9.0.5" + dependencies: + "@graphql-tools/batch-delegate": ^9.0.1 + "@graphql-tools/delegate": ^10.0.4 + "@graphql-tools/executor": ^1.2.1 + "@graphql-tools/merge": ^9.0.3 + "@graphql-tools/schema": ^10.0.3 + "@graphql-tools/utils": ^10.0.13 + "@graphql-tools/wrap": ^10.0.2 + tslib: ^2.4.0 + value-or-promise: ^1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 3f161d97eaa207fc73676a24248ea8584e05e1bc6da34f159a97b44901f3fed089a42d712aeb5143e0757662d4aa8e3d92b5b9587ea978b2f66af43e9a1dc7c6 + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.0.1, @graphql-tools/utils@npm:^10.0.12, @graphql-tools/utils@npm:^10.0.13, @graphql-tools/utils@npm:^10.1.1": + version: 10.1.1 + resolution: "@graphql-tools/utils@npm:10.1.1" + dependencies: + "@graphql-typed-document-node/core": ^3.1.1 + cross-inspect: 1.0.0 + dset: ^3.1.2 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 06d4488ec4eddbfdb0913f39669790acc5395353d80d126e907a2370e151859b7fb63f948b98b62c5525ed2c39c739046bf990b482549f0ea14e91a8a3728637 + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:^8.8.0": + version: 8.13.1 + resolution: "@graphql-tools/utils@npm:8.13.1" + dependencies: + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: ff04fdeb29e9ac596ea53386cd5b23cd741bb14c1997c6b0ba3c34ca165bd82b528a355e8c8e2ba726eb39e833ba9cbb0851ba0addb8c6d367089a1145bf9a49 + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:^9.0.0, @graphql-tools/utils@npm:^9.2.1": + version: 9.2.1 + resolution: "@graphql-tools/utils@npm:9.2.1" + dependencies: + "@graphql-typed-document-node/core": ^3.1.1 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 94ed12df5f49e5c338322ffd931236a687a3d5c443bf499f9baab5d4fcd9792234111142be8aa506a01ca2e82732996c4e1d8f6159ff9cc7fdc5c97f63e55226 languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" +"@graphql-tools/wrap@npm:^10.0.0, @graphql-tools/wrap@npm:^10.0.2": + version: 10.0.3 + resolution: "@graphql-tools/wrap@npm:10.0.3" dependencies: - eslint-visitor-keys: ^3.3.0 + "@graphql-tools/delegate": ^10.0.4 + "@graphql-tools/schema": ^10.0.3 + "@graphql-tools/utils": ^10.1.1 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e894a30163f6e74b3908683e6acbf297c93d56e68c7027fe4f8282568edf525d0fda2cd971b976e284779e9b82219f2a66118744ed536ea82959386a26b5eaa0 languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b +"@graphql-typed-document-node/core@npm:3.2.0, @graphql-typed-document-node/core@npm:^3.1.1, @graphql-typed-document-node/core@npm:^3.2.0": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@graphql-yoga/logger@npm:^2.0.0": + version: 2.0.0 + resolution: "@graphql-yoga/logger@npm:2.0.0" dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^9.6.0 - globals: ^13.19.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.1.2 - strip-json-comments: ^3.1.1 - checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 + tslib: ^2.5.2 + checksum: 0050dbf6294ab95de9ff9d9ad2a2630278a90449fff138ff996a40dcd652d116aa1abe6748a62ab9a6069a8d609a45c47d60886fbdd573334a3c494872de8fa6 languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb +"@graphql-yoga/plugin-persisted-operations@npm:^3.0.0": + version: 3.1.1 + resolution: "@graphql-yoga/plugin-persisted-operations@npm:3.1.1" + peerDependencies: + "@graphql-tools/utils": ^10.0.0 + graphql: ^15.2.0 || ^16.0.0 + graphql-yoga: ^5.1.1 + checksum: 69671a8069ef46fc8c01218031117ef048ef7ab6385034194c7ec73c4c40d9c81aed7165a86849395d95a80a4730c7080b7f547067cea2314186ad9a42fe7522 languageName: node linkType: hard -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 +"@graphql-yoga/subscription@npm:^5.0.0": + version: 5.0.0 + resolution: "@graphql-yoga/subscription@npm:5.0.0" + dependencies: + "@graphql-yoga/typed-event-target": ^3.0.0 + "@repeaterjs/repeater": ^3.0.4 + "@whatwg-node/events": ^0.1.0 + tslib: ^2.5.2 + checksum: 58b494085c5bc54bbade8fa94a2e083b4cd5ca6732c3c3006789e6c9bc1cc88978c11fd6a37267f0da794c3cd30068533a0345c5ae428ccbcb81c23c636b70cd + languageName: node + linkType: hard + +"@graphql-yoga/typed-event-target@npm:^3.0.0": + version: 3.0.0 + resolution: "@graphql-yoga/typed-event-target@npm:3.0.0" + dependencies: + "@repeaterjs/repeater": ^3.0.4 + tslib: ^2.5.2 + checksum: 0101e71658b519e935bcfc439f9a9db401d2ac17cacfa893a5cb15de947f1962ea84c3ebc89a88dc91f7f1030a758595c20903fa1d3b685c854723688f3a4a08 languageName: node linkType: hard @@ -3153,6 +4166,20 @@ __metadata: languageName: node linkType: hard +"@json-schema-tools/meta-schema@npm:1.7.0": + version: 1.7.0 + resolution: "@json-schema-tools/meta-schema@npm:1.7.0" + checksum: 17dc4e9011262e7feab02c20b2b74b9ed5ec33da95cf20c37aeea16cdd8be6debb9fd9953ffdeba514caceb014616a2e2b833b7123c6e6e03ba76574fd7b7c60 + languageName: node + linkType: hard + +"@kamilkisiela/fast-url-parser@npm:^1.1.4": + version: 1.1.4 + resolution: "@kamilkisiela/fast-url-parser@npm:1.1.4" + checksum: 921d305eff1fce5c7c669aee5cfe39e50109968addb496c23f0a42253d030e3cd5865eb01b13245915923bee452db75ba8a8254e69b0d0575d3c168efce7091e + languageName: node + linkType: hard + "@leichtgewicht/ip-codec@npm:^2.0.1": version: 2.0.4 resolution: "@leichtgewicht/ip-codec@npm:2.0.4" @@ -3160,6 +4187,25 @@ __metadata: languageName: node linkType: hard +"@mapbox/node-pre-gyp@npm:1.0.11": + version: 1.0.11 + resolution: "@mapbox/node-pre-gyp@npm:1.0.11" + dependencies: + detect-libc: ^2.0.0 + https-proxy-agent: ^5.0.0 + make-dir: ^3.1.0 + node-fetch: ^2.6.7 + nopt: ^5.0.0 + npmlog: ^5.0.1 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.11 + bin: + node-pre-gyp: bin/node-pre-gyp + checksum: b848f6abc531a11961d780db813cc510ca5a5b6bf3184d72134089c6875a91c44d571ba6c1879470020803f7803609e7b2e6e429651c026fe202facd11d444b8 + languageName: node + linkType: hard + "@ngtools/webpack@npm:16.2.0": version: 16.2.0 resolution: "@ngtools/webpack@npm:16.2.0" @@ -3297,6 +4343,58 @@ __metadata: languageName: node linkType: hard +"@omnigraph/json-schema@npm:^0.99.2": + version: 0.99.2 + resolution: "@omnigraph/json-schema@npm:0.99.2" + dependencies: + "@graphql-mesh/string-interpolation": 0.5.3 + "@graphql-mesh/transport-common": ^0.1.1 + "@graphql-mesh/transport-rest": ^0.1.2 + "@graphql-tools/delegate": ^10.0.3 + "@json-schema-tools/meta-schema": 1.7.0 + "@whatwg-node/fetch": ^0.9.0 + ajv: 8.12.0 + ajv-formats: 2.1.1 + dset: 3.1.3 + graphql-compose: 9.0.10 + graphql-fields: ^2.0.3 + graphql-scalars: ^1.22.4 + json-machete: 0.97.1 + pascal-case: 3.1.2 + qs: 6.12.0 + to-json-schema: 0.2.5 + url-join: 4.0.1 + peerDependencies: + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + "@graphql-tools/utils": ^9.2.1 || ^10.0.0 + graphql: "*" + tslib: ^2.4.0 + checksum: 0c7830fc672b342d3095717924fb95c2a8f1d28dca4a839c7188240e37c87cad744604540c3122f1e5eb3b460352a3f7c9f9534ecf39c623cadf8ed60bcc55e5 + languageName: node + linkType: hard + +"@omnigraph/openapi@npm:0.99.2": + version: 0.99.2 + resolution: "@omnigraph/openapi@npm:0.99.2" + dependencies: + "@graphql-mesh/string-interpolation": ^0.5.3 + "@graphql-tools/delegate": ^10.0.3 + "@omnigraph/json-schema": ^0.99.2 + change-case: ^4.1.2 + json-machete: ^0.97.1 + openapi-types: ^12.1.0 + peerDependencies: + "@graphql-mesh/cross-helpers": ^0.4.1 + "@graphql-mesh/types": ^0.97.1 + "@graphql-mesh/utils": ^0.97.1 + graphql: "*" + tslib: ^2.4.0 + checksum: 06e92c5ce637d24b5ebcdb294537766d4914952030b374c34f1a8d2ec2eb1f83e0e5e7a9a1d497d316edc32f9675de7389d70872051013db0560203f160b5e2f + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -3318,6 +4416,13 @@ __metadata: languageName: node linkType: hard +"@repeaterjs/repeater@npm:^3.0.4": + version: 3.0.5 + resolution: "@repeaterjs/repeater@npm:3.0.5" + checksum: 4f66020679a2e7a93fbd43d40a7ae6a187d6d7d148b019cca025791dade452599848bd20cd225861a65629571806c551a18cd40190426eb74b050710ac3ae865 + languageName: node + linkType: hard + "@schematics/angular@npm:16.2.0": version: 16.2.0 resolution: "@schematics/angular@npm:16.2.0" @@ -4665,6 +5770,46 @@ __metadata: languageName: node linkType: hard +"@whatwg-node/events@npm:^0.1.0": + version: 0.1.1 + resolution: "@whatwg-node/events@npm:0.1.1" + checksum: 3a356ca23522190201e27446cfd7ebf1cf96815ddb9d1ba5da0a00bbe6c1d28b4094862104411101fbedd47c758b25fe3683033f6a3e80933029efd664c33567 + languageName: node + linkType: hard + +"@whatwg-node/fetch@npm:^0.9.0, @whatwg-node/fetch@npm:^0.9.13, @whatwg-node/fetch@npm:^0.9.17, @whatwg-node/fetch@npm:^0.9.7": + version: 0.9.17 + resolution: "@whatwg-node/fetch@npm:0.9.17" + dependencies: + "@whatwg-node/node-fetch": ^0.5.7 + urlpattern-polyfill: ^10.0.0 + checksum: b1f6bb29eab80f2be7764b115c82327bc0a361524b08d4a26a0c65d2a6f04fb014093d7998dfd408f9e43294b5ad613d31db23643dbe4976e089d9fe9ffe6342 + languageName: node + linkType: hard + +"@whatwg-node/node-fetch@npm:^0.5.7": + version: 0.5.7 + resolution: "@whatwg-node/node-fetch@npm:0.5.7" + dependencies: + "@kamilkisiela/fast-url-parser": ^1.1.4 + "@whatwg-node/events": ^0.1.0 + busboy: ^1.6.0 + fast-querystring: ^1.1.1 + tslib: ^2.3.1 + checksum: 381c4fdb64fca628a7fc9b09c0d7a2cca50145f495c754e7bb9f280a3e1102cc080ac4c57456af92a5b067ec33e2f524799e73e2957e597fa0904f64b23e2b5c + languageName: node + linkType: hard + +"@whatwg-node/server@npm:^0.9.0, @whatwg-node/server@npm:^0.9.1": + version: 0.9.28 + resolution: "@whatwg-node/server@npm:0.9.28" + dependencies: + "@whatwg-node/fetch": ^0.9.17 + tslib: ^2.3.1 + checksum: fe02d0e0b4b4afa381e4b1d39f7b1797269a7cc30183e2130f28b06fc3ed09e242e01da5dbe6283dcbb73ef1e74bb6c4ce91e948a0d64c1b44e8b956379aabe9 + languageName: node + linkType: hard + "@xtuc/ieee754@npm:^1.2.0": version: 1.2.0 resolution: "@xtuc/ieee754@npm:1.2.0" @@ -4693,7 +5838,7 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:^1.0.0": +"abbrev@npm:1, abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 @@ -4885,7 +6030,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:8.12.0, ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.9.0": +"ajv@npm:8.12.0, ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.12.0, ajv@npm:^8.9.0": version: 8.12.0 resolution: "ajv@npm:8.12.0" dependencies: @@ -4897,7 +6042,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.11.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -5027,6 +6172,16 @@ __metadata: languageName: node linkType: hard +"are-we-there-yet@npm:^2.0.0": + version: 2.0.0 + resolution: "are-we-there-yet@npm:2.0.0" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 6c80b4fd04ecee6ba6e737e0b72a4b41bdc64b7d279edfc998678567ff583c8df27e27523bc789f2c99be603ffa9eaa612803da1d886962d2086e7ff6fa90c7c + languageName: node + linkType: hard + "are-we-there-yet@npm:^3.0.0": version: 3.0.1 resolution: "are-we-there-yet@npm:3.0.1" @@ -5037,6 +6192,13 @@ __metadata: languageName: node linkType: hard +"are-we-there-yet@npm:^4.0.0": + version: 4.0.2 + resolution: "are-we-there-yet@npm:4.0.2" + checksum: 29d562d3aad6428aa4d732f78b058f1025fda00305bb307b4cd6ee26a43e5b4c90c113e97e01fa43bfe04556a800ba7e5c947907891ae99bfb8a5ae2488078d0 + languageName: node + linkType: hard + "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" @@ -5098,6 +6260,13 @@ __metadata: languageName: node linkType: hard +"asap@npm:~2.0.3": + version: 2.0.6 + resolution: "asap@npm:2.0.6" + checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d + languageName: node + linkType: hard + "asn1@npm:~0.2.3": version: 0.2.6 resolution: "asn1@npm:0.2.6" @@ -5149,6 +6318,13 @@ __metadata: languageName: node linkType: hard +"auto-bind@npm:~4.0.0": + version: 4.0.0 + resolution: "auto-bind@npm:4.0.0" + checksum: 00cad71cce5742faccb7dd65c1b55ebc4f45add4b0c9a1547b10b05bab22813230133b0c892c67ba3eb969a4524710c5e43cc45c72898ec84e56f3a596e7a04f + languageName: node + linkType: hard + "autoprefixer@npm:10.4.14": version: 10.4.14 resolution: "autoprefixer@npm:10.4.14" @@ -5304,6 +6480,13 @@ __metadata: languageName: node linkType: hard +"babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0": + version: 7.0.0-beta.0 + resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0" + checksum: e37509156ca945dd9e4b82c66dd74f2d842ad917bd280cb5aa67960942300cd065eeac476d2514bdcdedec071277a358f6d517c31d9f9244d9bbc3619a8ecf8a + languageName: node + linkType: hard + "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.0.1 resolution: "babel-preset-current-node-syntax@npm:1.0.1" @@ -5326,6 +6509,43 @@ __metadata: languageName: node linkType: hard +"babel-preset-fbjs@npm:^3.4.0": + version: 3.4.0 + resolution: "babel-preset-fbjs@npm:3.4.0" + dependencies: + "@babel/plugin-proposal-class-properties": ^7.0.0 + "@babel/plugin-proposal-object-rest-spread": ^7.0.0 + "@babel/plugin-syntax-class-properties": ^7.0.0 + "@babel/plugin-syntax-flow": ^7.0.0 + "@babel/plugin-syntax-jsx": ^7.0.0 + "@babel/plugin-syntax-object-rest-spread": ^7.0.0 + "@babel/plugin-transform-arrow-functions": ^7.0.0 + "@babel/plugin-transform-block-scoped-functions": ^7.0.0 + "@babel/plugin-transform-block-scoping": ^7.0.0 + "@babel/plugin-transform-classes": ^7.0.0 + "@babel/plugin-transform-computed-properties": ^7.0.0 + "@babel/plugin-transform-destructuring": ^7.0.0 + "@babel/plugin-transform-flow-strip-types": ^7.0.0 + "@babel/plugin-transform-for-of": ^7.0.0 + "@babel/plugin-transform-function-name": ^7.0.0 + "@babel/plugin-transform-literals": ^7.0.0 + "@babel/plugin-transform-member-expression-literals": ^7.0.0 + "@babel/plugin-transform-modules-commonjs": ^7.0.0 + "@babel/plugin-transform-object-super": ^7.0.0 + "@babel/plugin-transform-parameters": ^7.0.0 + "@babel/plugin-transform-property-literals": ^7.0.0 + "@babel/plugin-transform-react-display-name": ^7.0.0 + "@babel/plugin-transform-react-jsx": ^7.0.0 + "@babel/plugin-transform-shorthand-properties": ^7.0.0 + "@babel/plugin-transform-spread": ^7.0.0 + "@babel/plugin-transform-template-literals": ^7.0.0 + babel-plugin-syntax-trailing-function-commas: ^7.0.0-beta.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: b3352cf690729125997f254bc31b9c4db347f8646f1571958ced1c45f0da89439e183e1c88e35397eb0361b9e1fbb1dd8142d3f4647814deb427e53c54f44d5f + languageName: node + linkType: hard + "babel-preset-jest@npm:^29.6.3": version: 29.6.3 resolution: "babel-preset-jest@npm:29.6.3" @@ -5587,6 +6807,15 @@ __metadata: languageName: node linkType: hard +"busboy@npm:^1.6.0": + version: 1.6.0 + resolution: "busboy@npm:1.6.0" + dependencies: + streamsearch: ^1.1.0 + checksum: 32801e2c0164e12106bf236291a00795c3c4e4b709ae02132883fe8478ba2ae23743b11c5735a0aae8afe65ac4b6ca4568b91f0d9fed1fdbc32ede824a73746e + languageName: node + linkType: hard + "bytes@npm:3.0.0": version: 3.0.0 resolution: "bytes@npm:3.0.0" @@ -5701,6 +6930,16 @@ __metadata: languageName: node linkType: hard +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: ^3.1.2 + tslib: ^2.0.3 + checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 + languageName: node + linkType: hard + "camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -5722,6 +6961,17 @@ __metadata: languageName: node linkType: hard +"capital-case@npm:^1.0.4": + version: 1.0.4 + resolution: "capital-case@npm:1.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 41fa8fa87f6d24d0835a2b4a9341a3eaecb64ac29cd7c5391f35d6175a0fa98ab044e7f2602e1ec3afc886231462ed71b5b80c590b8b41af903ec2c15e5c5931 + languageName: node + linkType: hard + "caseless@npm:~0.12.0": version: 0.12.0 resolution: "caseless@npm:0.12.0" @@ -5757,6 +7007,62 @@ __metadata: languageName: node linkType: hard +"change-case-all@npm:1.0.14": + version: 1.0.14 + resolution: "change-case-all@npm:1.0.14" + dependencies: + change-case: ^4.1.2 + is-lower-case: ^2.0.2 + is-upper-case: ^2.0.2 + lower-case: ^2.0.2 + lower-case-first: ^2.0.2 + sponge-case: ^1.0.1 + swap-case: ^2.0.2 + title-case: ^3.0.3 + upper-case: ^2.0.2 + upper-case-first: ^2.0.2 + checksum: 6ff893e005e1bf115cc2969cc5ca3610f7c6ece9e90b7927ed12c980c7d3ea9a565150d246c6dba0fee21aaacbd38d69b98a4670d96b892c76f66e46616506d3 + languageName: node + linkType: hard + +"change-case-all@npm:1.0.15": + version: 1.0.15 + resolution: "change-case-all@npm:1.0.15" + dependencies: + change-case: ^4.1.2 + is-lower-case: ^2.0.2 + is-upper-case: ^2.0.2 + lower-case: ^2.0.2 + lower-case-first: ^2.0.2 + sponge-case: ^1.0.1 + swap-case: ^2.0.2 + title-case: ^3.0.3 + upper-case: ^2.0.2 + upper-case-first: ^2.0.2 + checksum: e1dabdcd8447a3690f3faf15f92979dfbc113109b50916976e1d5e518e6cfdebee4f05f54d0ca24fb79a4bf835185b59ae25e967bb3dc10bd236a775b19ecc52 + languageName: node + linkType: hard + +"change-case@npm:^4.1.2": + version: 4.1.2 + resolution: "change-case@npm:4.1.2" + dependencies: + camel-case: ^4.1.2 + capital-case: ^1.0.4 + constant-case: ^3.0.4 + dot-case: ^3.0.4 + header-case: ^2.0.4 + no-case: ^3.0.4 + param-case: ^3.0.4 + pascal-case: ^3.1.2 + path-case: ^3.0.4 + sentence-case: ^3.0.4 + snake-case: ^3.0.4 + tslib: ^2.0.3 + checksum: e4bc4a093a1f7cce8b33896665cf9e456e3bc3cc0def2ad7691b1994cfca99b3188d0a513b16855b01a6bd20692fcde12a7d4d87a5615c4c515bbbf0e651f116 + languageName: node + linkType: hard + "char-regex@npm:^1.0.2": version: 1.0.2 resolution: "char-regex@npm:1.0.2" @@ -5936,6 +7242,17 @@ __metadata: languageName: node linkType: hard +"cliui@npm:^6.0.0": + version: 6.0.0 + resolution: "cliui@npm:6.0.0" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.0 + wrap-ansi: ^6.2.0 + checksum: 4fcfd26d292c9f00238117f39fc797608292ae36bac2168cfee4c85923817d0607fe21b3329a8621e01aedf512c99b7eaa60e363a671ffd378df6649fb48ae42 + languageName: node + linkType: hard + "cliui@npm:^7.0.2": version: 7.0.4 resolution: "cliui@npm:7.0.4" @@ -6048,7 +7365,7 @@ __metadata: languageName: node linkType: hard -"color-support@npm:^1.1.3": +"color-support@npm:^1.1.2, color-support@npm:^1.1.3": version: 1.1.3 resolution: "color-support@npm:1.1.3" bin: @@ -6122,7 +7439,7 @@ __metadata: languageName: node linkType: hard -"common-tags@npm:^1.8.0": +"common-tags@npm:1.8.2, common-tags@npm:^1.8.0": version: 1.8.2 resolution: "common-tags@npm:1.8.2" checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff @@ -6194,13 +7511,24 @@ __metadata: languageName: node linkType: hard -"console-control-strings@npm:^1.1.0": +"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed languageName: node linkType: hard +"constant-case@npm:^3.0.4": + version: 3.0.4 + resolution: "constant-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case: ^2.0.2 + checksum: 6c3346d51afc28d9fae922e966c68eb77a19d94858dba230dd92d7b918b37d36db50f0311e9ecf6847e43e934b1c01406a0936973376ab17ec2c471fbcfb2cf3 + languageName: node + linkType: hard + "content-disposition@npm:0.5.4": version: 0.5.4 resolution: "content-disposition@npm:0.5.4" @@ -6380,6 +7708,24 @@ __metadata: languageName: node linkType: hard +"cross-fetch@npm:^3.1.5": + version: 3.1.8 + resolution: "cross-fetch@npm:3.1.8" + dependencies: + node-fetch: ^2.6.12 + checksum: 78f993fa099eaaa041122ab037fe9503ecbbcb9daef234d1d2e0b9230a983f64d645d088c464e21a247b825a08dc444a6e7064adfa93536d3a9454b4745b3632 + languageName: node + linkType: hard + +"cross-inspect@npm:1.0.0": + version: 1.0.0 + resolution: "cross-inspect@npm:1.0.0" + dependencies: + tslib: ^2.4.0 + checksum: 975c81799549627027254eb70f1c349cefb14435d580bea6f351f510c839dcb1a9288983407bac2ad317e6eff29cf1e99299606da21f404562bfa64cec502239 + languageName: node + linkType: hard + "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -6820,6 +8166,13 @@ __metadata: languageName: node linkType: hard +"dataloader@npm:2.2.2, dataloader@npm:^2.2.2": + version: 2.2.2 + resolution: "dataloader@npm:2.2.2" + checksum: 4dabd247089c29f194e94d5434d504f99156c5c214a03463c20f3f17f40398d7e179edee69a27c16e315519ac8739042a810090087ae26449a0e685156a02c65 + languageName: node + linkType: hard + "date-fns@npm:^2.30.0": version: 2.30.0 resolution: "date-fns@npm:2.30.0" @@ -6829,7 +8182,7 @@ __metadata: languageName: node linkType: hard -"dayjs@npm:^1.10.4": +"dayjs@npm:1.11.10, dayjs@npm:^1.10.4": version: 1.11.10 resolution: "dayjs@npm:1.11.10" checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4 @@ -7024,6 +8377,13 @@ __metadata: languageName: node linkType: hard +"dependency-graph@npm:0.11.0, dependency-graph@npm:^0.11.0": + version: 0.11.0 + resolution: "dependency-graph@npm:0.11.0" + checksum: 477204beaa9be69e642bc31ffe7a8c383d0cf48fa27acbc91c5df01431ab913e65c154213d2ef83d034c98d77280743ec85e5da018a97a18dd43d3c0b78b28cd + languageName: node + linkType: hard + "destroy@npm:1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" @@ -7031,6 +8391,13 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^2.0.0": + version: 2.0.2 + resolution: "detect-libc@npm:2.0.2" + checksum: 2b2cd3649b83d576f4be7cc37eb3b1815c79969c8b1a03a40a4d55d83bc74d010753485753448eacb98784abf22f7dbd3911fd3b60e29fda28fed2d1a997944d + languageName: node + linkType: hard + "detect-newline@npm:^3.0.0": version: 3.1.0 resolution: "detect-newline@npm:3.1.0" @@ -7161,6 +8528,30 @@ __metadata: languageName: node linkType: hard +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 + languageName: node + linkType: hard + +"dotenv@npm:^16.0.3": + version: 16.4.5 + resolution: "dotenv@npm:16.4.5" + checksum: 301a12c3d44fd49888b74eb9ccf9f07a1f5df43f489e7fcb89647a2edcd84c42d6bc349dc8df099cd18f07c35c7b04685c1a4f3e6a6a9e6b30f8d48c15b7f49c + languageName: node + linkType: hard + +"dset@npm:3.1.3, dset@npm:^3.1.1, dset@npm:^3.1.2, dset@npm:^3.1.3": + version: 3.1.3 + resolution: "dset@npm:3.1.3" + checksum: 5db964a36c60c51aa3f7088bfe1dc5c0eedd9a6ef3b216935bb70ef4a7b8fc40fd2f9bb16b9a4692c9c9772cea60cfefb108d2d09fbd53c85ea8f6cd54502d6a + languageName: node + linkType: hard + "duplexer@npm:^0.1.2": version: 0.1.2 resolution: "duplexer@npm:0.1.2" @@ -7316,6 +8707,13 @@ __metadata: languageName: node linkType: hard +"env-paths@npm:2.2.0": + version: 2.2.0 + resolution: "env-paths@npm:2.2.0" + checksum: ba2aea38301aafd69086be1f8cb453b92946e4840cb0de9d1c88a67e6f43a6174dcddb60b218ec36db8720b12de46b0d93c2f97ad9bbec6a267b479ab37debb6 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -8153,6 +9551,13 @@ __metadata: languageName: node linkType: hard +"fast-decode-uri-component@npm:^1.0.1": + version: 1.0.1 + resolution: "fast-decode-uri-component@npm:1.0.1" + checksum: 427a48fe0907e76f0e9a2c228e253b4d8a8ab21d130ee9e4bb8339c5ba4086235cf9576831f7b20955a752eae4b525a177ff9d5825dd8d416e7726939194fbee + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -8213,6 +9618,17 @@ __metadata: languageName: node linkType: hard +"fast-json-stringify@npm:^1.21.0": + version: 1.21.0 + resolution: "fast-json-stringify@npm:1.21.0" + dependencies: + ajv: ^6.11.0 + deepmerge: ^4.2.2 + string-similarity: ^4.0.1 + checksum: 3fa77711aa179ce402b7067d7c2c841f6fb044813929177add50a3db030af31bc67c9191e1c0335593ac19044cb069471148316d30e30a218ec295bb6c46ee27 + languageName: node + linkType: hard + "fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" @@ -8220,6 +9636,15 @@ __metadata: languageName: node linkType: hard +"fast-querystring@npm:^1.1.1": + version: 1.1.2 + resolution: "fast-querystring@npm:1.1.2" + dependencies: + fast-decode-uri-component: ^1.0.1 + checksum: 7149f82ee9ac39a9c08c7ffe435b9f6deade76ae5e3675fe1835720513e8c4bc541e666b4b7b1c0c07e08f369dcf4828d00f2bee39889a90a168e1439cf27b0b + languageName: node + linkType: hard + "fastest-levenshtein@npm:^1.0.16": version: 1.0.16 resolution: "fastest-levenshtein@npm:1.0.16" @@ -8261,6 +9686,28 @@ __metadata: languageName: node linkType: hard +"fbjs-css-vars@npm:^1.0.0": + version: 1.0.2 + resolution: "fbjs-css-vars@npm:1.0.2" + checksum: 72baf6d22c45b75109118b4daecb6c8016d4c83c8c0f23f683f22e9d7c21f32fff6201d288df46eb561e3c7d4bb4489b8ad140b7f56444c453ba407e8bd28511 + languageName: node + linkType: hard + +"fbjs@npm:^3.0.0": + version: 3.0.5 + resolution: "fbjs@npm:3.0.5" + dependencies: + cross-fetch: ^3.1.5 + fbjs-css-vars: ^1.0.0 + loose-envify: ^1.0.0 + object-assign: ^4.1.0 + promise: ^7.1.1 + setimmediate: ^1.0.5 + ua-parser-js: ^1.0.35 + checksum: e609b5b64686bc96495a5c67728ed9b2710b9b3d695c5759c5f5e47c9483d1c323543ac777a86459e3694efc5712c6ce7212e944feb19752867d699568bb0e54 + languageName: node + linkType: hard + "fd-slicer@npm:~1.1.0": version: 1.1.0 resolution: "fd-slicer@npm:1.1.0" @@ -8435,6 +9882,13 @@ __metadata: languageName: node linkType: hard +"foreach@npm:^2.0.4": + version: 2.0.6 + resolution: "foreach@npm:2.0.6" + checksum: f7b68494545ee41cbd0b0425ebf5386c265dc38ef2a9b0d5cd91a1b82172e939b4cf9387f8e0ebf6db4e368fc79ed323f2198424d5c774515ac3ed9b08901c0e + languageName: node + linkType: hard + "foreground-child@npm:^3.1.0": version: 3.1.1 resolution: "foreground-child@npm:3.1.1" @@ -8587,6 +10041,23 @@ __metadata: languageName: node linkType: hard +"gauge@npm:^3.0.0": + version: 3.0.2 + resolution: "gauge@npm:3.0.2" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.2 + console-control-strings: ^1.0.0 + has-unicode: ^2.0.1 + object-assign: ^4.1.1 + signal-exit: ^3.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.2 + checksum: 81296c00c7410cdd48f997800155fbead4f32e4f82109be0719c63edc8560e6579946cc8abd04205297640691ec26d21b578837fd13a4e96288ab4b40b1dc3e9 + languageName: node + linkType: hard + "gauge@npm:^4.0.3": version: 4.0.4 resolution: "gauge@npm:4.0.4" @@ -8595,11 +10066,36 @@ __metadata: color-support: ^1.1.3 console-control-strings: ^1.1.0 has-unicode: ^2.0.1 - signal-exit: ^3.0.7 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + +"gauge@npm:^5.0.0": + version: 5.0.1 + resolution: "gauge@npm:5.0.1" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^4.0.1 string-width: ^4.2.3 strip-ansi: ^6.0.1 wide-align: ^1.1.5 - checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + checksum: 09b1eb8d8c850df7e4e2822feef27427afc845d4839fa13a08ddad74f882caf668dd1e77ac5e059d3e9a7b0cef59b706d28be40e1dc5fd326da32965e1f206a6 + languageName: node + linkType: hard + +"generate-function@npm:^2.3.1": + version: 2.3.1 + resolution: "generate-function@npm:2.3.1" + dependencies: + is-property: ^1.0.2 + checksum: 652f083de206ead2bae4caf9c7eeb465e8d98c0b8ed2a29c6afc538cef0785b5c6eea10548f1e13cc586d3afd796c13c830c2cb3dc612ec2457b2aadda5f57c9 languageName: node linkType: hard @@ -8746,7 +10242,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:~7.2.0": +"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:~7.2.0": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -8834,7 +10330,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.1.0": +"globby@npm:^11.0.3, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -8891,6 +10387,116 @@ __metadata: languageName: node linkType: hard +"graphql-compose@npm:9.0.10": + version: 9.0.10 + resolution: "graphql-compose@npm:9.0.10" + dependencies: + graphql-type-json: 0.3.2 + checksum: 46c566470a41d9ed5065b2ac2c50c870d34e5d03fff7eaa71cf10212a6492d1eef8a6ed9df012fbbfc85fa587eddbf498ce115015b075630f2c4168fcd447810 + languageName: node + linkType: hard + +"graphql-fields@npm:^2.0.3": + version: 2.0.3 + resolution: "graphql-fields@npm:2.0.3" + checksum: 399028c03febc5f14778fd97152c5026dc7d19837df0c097f11200446650caf6c56c8e13bc11b42e5d9fca037ae2ef1ab5fbc70d2601db5fbc06cfc5bb2f8b8b + languageName: node + linkType: hard + +"graphql-import-node@npm:^0.0.5": + version: 0.0.5 + resolution: "graphql-import-node@npm:0.0.5" + peerDependencies: + graphql: "*" + checksum: a9af565f3422e9e732dcf97077deff3f94b9af0d7e8001bb65a3cac607a462664f902b3603ead1626b294928c4b6302cb6aa2d49254444d465ce87c629fb842d + languageName: node + linkType: hard + +"graphql-jit@npm:0.8.2": + version: 0.8.2 + resolution: "graphql-jit@npm:0.8.2" + dependencies: + "@graphql-typed-document-node/core": ^3.1.1 + fast-json-stringify: ^1.21.0 + generate-function: ^2.3.1 + json-schema: ^0.4.0 + lodash.memoize: ^4.1.2 + lodash.merge: 4.6.2 + lodash.mergewith: 4.6.2 + peerDependencies: + graphql: ">=15" + checksum: 460f6ab75f490f28b226640d5d037f02f0955b6f0a9c31a3addcc89f8547a1469578a360c9cd8e7be322e96b720b8f1af4b5a9ce920deec835b305bacd63a90a + languageName: node + linkType: hard + +"graphql-scalars@npm:^1.22.4": + version: 1.22.5 + resolution: "graphql-scalars@npm:1.22.5" + dependencies: + tslib: ^2.5.0 + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 9fbbd17dff21f02dc2f2ef5861c1ebf457355f7bc5525f63ffb52c8dee6203725190eb77960d742750f4f458416bba75484f9a2d921960b101eb076ed93e6810 + languageName: node + linkType: hard + +"graphql-tag@npm:^2.11.0": + version: 2.12.6 + resolution: "graphql-tag@npm:2.12.6" + dependencies: + tslib: ^2.1.0 + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: b15162a3d62f17b9b79302445b9ee330e041582f1c7faca74b9dec5daa74272c906ec1c34e1c50592bb6215e5c3eba80a309103f6ba9e4c1cddc350c46f010df + languageName: node + linkType: hard + +"graphql-type-json@npm:0.3.2": + version: 0.3.2 + resolution: "graphql-type-json@npm:0.3.2" + peerDependencies: + graphql: ">=0.8.0" + checksum: 41620699637a5294937bd61d6e2696edea5a1279ef3d8f4b33716a910635595435381ccd1b74c6fae62c2bc81064c62ae27d3559c8380c0f99bdfdc8ecb249b0 + languageName: node + linkType: hard + +"graphql-ws@npm:^5.12.1": + version: 5.15.0 + resolution: "graphql-ws@npm:5.15.0" + peerDependencies: + graphql: ">=0.11 <=16" + checksum: 699b3a74af772f974948947b2124917610dfcc89cbde1e3ed36080d17455712c9e24f6d8a3f102baaa662fc7a0777880492a507294dbaa3f6f669afae27510c3 + languageName: node + linkType: hard + +"graphql-yoga@npm:^5.1.1": + version: 5.1.1 + resolution: "graphql-yoga@npm:5.1.1" + dependencies: + "@envelop/core": ^5.0.0 + "@graphql-tools/executor": ^1.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 + "@graphql-yoga/logger": ^2.0.0 + "@graphql-yoga/subscription": ^5.0.0 + "@whatwg-node/fetch": ^0.9.7 + "@whatwg-node/server": ^0.9.1 + dset: ^3.1.1 + lru-cache: ^10.0.0 + tslib: ^2.5.2 + peerDependencies: + graphql: ^15.2.0 || ^16.0.0 + checksum: de4f7f9b080f437cd9be5c2b9c45a1a85a8ffcb6599d0b1a0b285839592fba4a42f2b1203044e661e83d4e795b0e3d6c5a908b47642bf795cf90584a62f8c642 + languageName: node + linkType: hard + +"graphql@npm:16.8.1": + version: 16.8.1 + resolution: "graphql@npm:16.8.1" + checksum: 8d304b7b6f708c8c5cc164b06e92467dfe36aff6d4f2cf31dd19c4c2905a0e7b89edac4b7e225871131fd24e21460836b369de0c06532644d15b461d55b1ccc0 + languageName: node + linkType: hard + "guess-parser@npm:0.4.22": version: 0.4.22 resolution: "guess-parser@npm:0.4.22" @@ -8989,6 +10595,16 @@ __metadata: languageName: node linkType: hard +"header-case@npm:^2.0.4": + version: 2.0.4 + resolution: "header-case@npm:2.0.4" + dependencies: + capital-case: ^1.0.4 + tslib: ^2.0.3 + checksum: 571c83eeb25e8130d172218712f807c0b96d62b020981400bccc1503a7cf14b09b8b10498a962d2739eccf231d950e3848ba7d420b58a6acd2f9283439546cd9 + languageName: node + linkType: hard + "hosted-git-info@npm:^6.0.0": version: 6.1.1 resolution: "hosted-git-info@npm:6.1.1" @@ -9297,6 +10913,13 @@ __metadata: languageName: node linkType: hard +"immediate@npm:~3.0.5": + version: 3.0.6 + resolution: "immediate@npm:3.0.6" + checksum: f9b3486477555997657f70318cc8d3416159f208bec4cca3ff3442fd266bc23f50f0c9bd8547e1371a6b5e82b821ec9a7044a4f7b944798b25aa3cc6d5e63e62 + languageName: node + linkType: hard + "immutable@npm:^4.0.0": version: 4.3.5 resolution: "immutable@npm:4.3.5" @@ -9304,6 +10927,13 @@ __metadata: languageName: node linkType: hard +"immutable@npm:~3.7.6": + version: 3.7.6 + resolution: "immutable@npm:3.7.6" + checksum: 8cccfb22d3ecf14fe0c474612e96d6bb5d117493e7639fe6642fb81e78c9ac4b698dd8a322c105001a709ad873ffc90e30bad7db5d9a3ef0b54a6e1db0258e8e + languageName: node + linkType: hard + "import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" @@ -9314,6 +10944,13 @@ __metadata: languageName: node linkType: hard +"import-from@npm:4.0.0": + version: 4.0.0 + resolution: "import-from@npm:4.0.0" + checksum: 1fa29c05b048da18914e91d9a529e5d9b91774bebbfab10e53f59bcc1667917672b971cf102fee857f142e5e433ce69fa1f0a596e1c7d82f9947a5ec352694b9 + languageName: node + linkType: hard + "import-local@npm:^3.0.2": version: 3.1.0 resolution: "import-local@npm:3.1.0" @@ -9436,6 +11073,15 @@ __metadata: languageName: node linkType: hard +"invariant@npm:^2.2.4": + version: 2.2.4 + resolution: "invariant@npm:2.2.4" + dependencies: + loose-envify: ^1.0.0 + checksum: cc3182d793aad82a8d1f0af697b462939cb46066ec48bbf1707c150ad5fad6406137e91a262022c269702e01621f35ef60269f6c0d7fd178487959809acdfb14 + languageName: node + linkType: hard + "ip-address@npm:^9.0.5": version: 9.0.5 resolution: "ip-address@npm:9.0.5" @@ -9460,6 +11106,16 @@ __metadata: languageName: node linkType: hard +"is-absolute@npm:^1.0.0": + version: 1.0.0 + resolution: "is-absolute@npm:1.0.0" + dependencies: + is-relative: ^1.0.0 + is-windows: ^1.0.1 + checksum: 9d16b2605eda3f3ce755410f1d423e327ad3a898bcb86c9354cf63970ed3f91ba85e9828aa56f5d6a952b9fae43d0477770f78d37409ae8ecc31e59ebc279b27 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -9602,6 +11258,15 @@ __metadata: languageName: node linkType: hard +"is-lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "is-lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: ba57dd1201e15fd9b590654736afccf1b3b68e919f40c23ef13b00ebcc639b1d9c2f81fe86415bff3e8eccffec459786c9ac9dc8f3a19cfa4484206c411c1d7d + languageName: node + linkType: hard + "is-network-error@npm:^1.0.0": version: 1.0.1 resolution: "is-network-error@npm:1.0.1" @@ -9667,6 +11332,22 @@ __metadata: languageName: node linkType: hard +"is-property@npm:^1.0.2": + version: 1.0.2 + resolution: "is-property@npm:1.0.2" + checksum: 33b661a3690bcc88f7e47bb0a21b9e3187e76a317541ea7ec5e8096d954f441b77a46d8930c785f7fbf4ef8dfd624c25495221e026e50f74c9048fe501773be5 + languageName: node + linkType: hard + +"is-relative@npm:^1.0.0": + version: 1.0.0 + resolution: "is-relative@npm:1.0.0" + dependencies: + is-unc-path: ^1.0.0 + checksum: 3271a0df109302ef5e14a29dcd5d23d9788e15ade91a40b942b035827ffbb59f7ce9ff82d036ea798541a52913cbf9d2d0b66456340887b51f3542d57b5a4c05 + languageName: node + linkType: hard + "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -9688,6 +11369,15 @@ __metadata: languageName: node linkType: hard +"is-unc-path@npm:^1.0.0": + version: 1.0.0 + resolution: "is-unc-path@npm:1.0.0" + dependencies: + unc-path-regex: ^0.1.2 + checksum: e8abfde203f7409f5b03a5f1f8636e3a41e78b983702ef49d9343eb608cdfe691429398e8815157519b987b739bcfbc73ae7cf4c8582b0ab66add5171088eab6 + languageName: node + linkType: hard + "is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0" @@ -9695,6 +11385,15 @@ __metadata: languageName: node linkType: hard +"is-upper-case@npm:^2.0.2": + version: 2.0.2 + resolution: "is-upper-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: cf4fd43c00c2e72cd5cff911923070b89f0933b464941bd782e2315385f80b5a5acd772db3b796542e5e3cfed735f4dffd88c54d62db1ebfc5c3daa7b1af2bc6 + languageName: node + linkType: hard + "is-what@npm:^3.14.1": version: 3.14.1 resolution: "is-what@npm:3.14.1" @@ -9702,6 +11401,13 @@ __metadata: languageName: node linkType: hard +"is-windows@npm:^1.0.1": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 + languageName: node + linkType: hard + "is-wsl@npm:^2.1.1, is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" @@ -10395,7 +12101,7 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^4.0.0": +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 @@ -10536,6 +12242,13 @@ __metadata: languageName: node linkType: hard +"json-bigint-patch@npm:^0.0.8": + version: 0.0.8 + resolution: "json-bigint-patch@npm:0.0.8" + checksum: 593de25b2b9dc161cd2c97afda3210602dbe5de1849baee616ecfc25d7daac399400fba7f50a73d69849686bbe9860061a2e04b181f11d0878fde76c3b05801a + languageName: node + linkType: hard + "json-buffer@npm:3.0.1": version: 3.0.1 resolution: "json-buffer@npm:3.0.1" @@ -10543,6 +12256,21 @@ __metadata: languageName: node linkType: hard +"json-machete@npm:0.97.1, json-machete@npm:^0.97.1": + version: 0.97.1 + resolution: "json-machete@npm:0.97.1" + dependencies: + "@json-schema-tools/meta-schema": 1.7.0 + cross-inspect: 1.0.0 + json-pointer: 0.6.2 + to-json-schema: 0.2.5 + url-join: 4.0.1 + peerDependencies: + tslib: ^2.4.0 + checksum: 26c0b8fcaf15eed2a4f4d3d68a830aba8f16d488fd25f70b58ef4729483c3d0a7711a75b81530b93ba6f9fcd5fd1cab5bb404dd55b5d61484bed7de811c70287 + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -10557,6 +12285,15 @@ __metadata: languageName: node linkType: hard +"json-pointer@npm:0.6.2": + version: 0.6.2 + resolution: "json-pointer@npm:0.6.2" + dependencies: + foreach: ^2.0.4 + checksum: 668143014b16d7f90e6f0e6c2d756b00b799424f58d750794a79a24cbce595855b224f7861986aaff719579558fbab81fb83c7371f5e24aded9dc33b3838de30 + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -10571,7 +12308,7 @@ __metadata: languageName: node linkType: hard -"json-schema@npm:0.4.0": +"json-schema@npm:0.4.0, json-schema@npm:^0.4.0": version: 0.4.0 resolution: "json-schema@npm:0.4.0" checksum: 66389434c3469e698da0df2e7ac5a3281bcff75e797a5c127db7c5b56270e01ae13d9afa3c03344f76e32e81678337a8c912bdbb75101c62e487dc3778461d72 @@ -10737,6 +12474,9 @@ __metadata: "@babel/preset-env": 7.24.0 "@babel/register": 7.23.7 "@cypress/webpack-preprocessor": 6.0.1 + "@graphql-mesh/cli": 0.89.0 + "@graphql-mesh/openapi": 0.99.2 + "@graphql-mesh/runtime": 0.98.0 "@swimlane/ngx-charts": 20.5.0 "@types/d3": 7.4.3 "@types/d3-scale": 4.0.8 @@ -10766,6 +12506,7 @@ __metadata: eslint-plugin-rxjs: 5.0.3 file-saver: 2.0.5 git-describe: 4.1.1 + graphql: 16.8.1 husky: 9.0.11 jasmine-core: 5.1.2 jasmine-spec-reporter: 7.0.0 @@ -10941,6 +12682,15 @@ __metadata: languageName: node linkType: hard +"lie@npm:3.1.1": + version: 3.1.1 + resolution: "lie@npm:3.1.1" + dependencies: + immediate: ~3.0.5 + checksum: 6da9f2121d2dbd15f1eca44c0c7e211e66a99c7b326ec8312645f3648935bc3a658cf0e9fa7b5f10144d9e2641500b4f55bd32754607c3de945b5f443e50ddd1 + languageName: node + linkType: hard + "lilconfig@npm:3.0.0": version: 3.0.0 resolution: "lilconfig@npm:3.0.0" @@ -11035,6 +12785,15 @@ __metadata: languageName: node linkType: hard +"localforage@npm:1.10.0": + version: 1.10.0 + resolution: "localforage@npm:1.10.0" + dependencies: + lie: 3.1.1 + checksum: f2978b434dafff9bcb0d9498de57d97eba165402419939c944412e179cab1854782830b5ec196212560b22712d1dd03918939f59cf1d4fc1d756fca7950086cf + languageName: node + linkType: hard + "locate-path@npm:^3.0.0": version: 3.0.0 resolution: "locate-path@npm:3.0.0" @@ -11086,20 +12845,55 @@ __metadata: languageName: node linkType: hard -"lodash.memoize@npm:4.x": +"lodash.get@npm:4.4.2, lodash.get@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.get@npm:4.4.2" + checksum: e403047ddb03181c9d0e92df9556570e2b67e0f0a930fcbbbd779370972368f5568e914f913e93f3b08f6d492abc71e14d4e9b7a18916c31fa04bd2306efe545 + languageName: node + linkType: hard + +"lodash.isequal@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.isequal@npm:4.5.0" + checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644 + languageName: node + linkType: hard + +"lodash.keys@npm:^4.2.0": + version: 4.2.0 + resolution: "lodash.keys@npm:4.2.0" + checksum: 055576c8c4a0bacc0c1da9bcbb520e6e70dcf94c609495263686c62c8242a440293e9ab8387a7398dda529cb05b76e8f783c3fd3d6ba7bc6d5d6d2e08e8512ae + languageName: node + linkType: hard + +"lodash.memoize@npm:4.x, lodash.memoize@npm:^4.1.2": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 languageName: node linkType: hard -"lodash.merge@npm:^4.6.2": +"lodash.merge@npm:4.6.2, lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 languageName: node linkType: hard +"lodash.mergewith@npm:4.6.2": + version: 4.6.2 + resolution: "lodash.mergewith@npm:4.6.2" + checksum: a6db2a9339752411f21b956908c404ec1e088e783a65c8b29e30ae5b3b6384f82517662d6f425cc97c2070b546cc2c7daaa8d33f78db7b6e9be06cd834abdeb8 + languageName: node + linkType: hard + +"lodash.omit@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.omit@npm:4.5.0" + checksum: 434645e49fe84ab315719bd5a9a3a585a0f624aa4160bc09157dd041a414bcc287c15840365c1379476a3f3eda41fbe838976c3f7bdecbbf4c5478e86c471a30 + languageName: node + linkType: hard + "lodash.once@npm:^4.1.1": version: 4.1.1 resolution: "lodash.once@npm:4.1.1" @@ -11107,6 +12901,13 @@ __metadata: languageName: node linkType: hard +"lodash.topath@npm:^4.5.2": + version: 4.5.2 + resolution: "lodash.topath@npm:4.5.2" + checksum: 04583e220f4bb1c4ac0008ff8f46d9cb4ddce0ea1090085790da30a41f4cb1b904d885cb73257fca619fa825cd96f9bb97c67d039635cb76056e18f5e08bfdee + languageName: node + linkType: hard + "lodash.truncate@npm:^4.4.2": version: 4.4.2 resolution: "lodash.truncate@npm:4.4.2" @@ -11114,7 +12915,21 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.7.0": +"lodash.without@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.without@npm:4.4.0" + checksum: 8cef752edd4ed4065be2a8fd30ea52c0bb27b0cb6c34742f595263c72ee0c3a188572affb477ef18a4dd4d0347fe1a4e580b70d4e36f37323d7924d2e6046bd6 + languageName: node + linkType: hard + +"lodash.xor@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.xor@npm:4.5.0" + checksum: af4df3638cad1fd565ce440c10956938c27f90e6fc7e2f9fa7cd405c8f0aae706a1bdb3fa006b51fa9cbe82427461c42d9bea67304b37aba20d77a37adc3faf8 + languageName: node + linkType: hard + +"lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.7.0, lodash@npm:~4.17.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -11156,7 +12971,36 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": +"loose-envify@npm:^1.0.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"lower-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 33e3da1098ddda219ce125d4ab7a78a944972c0ee8872e95b6ccc35df8ad405284ab233b0ba4d72315ad1a06fe2f0d418ee4cba9ec1ef1c386dea78899fc8958 + languageName: node + linkType: hard + +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.0, lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": version: 10.2.0 resolution: "lru-cache@npm:10.2.0" checksum: eee7ddda4a7475deac51ac81d7dd78709095c6fa46e8350dc2d22462559a1faa3b81ed931d5464b13d48cbd7e08b46100b6f768c76833912bc444b99c37e25db @@ -11216,6 +13060,15 @@ __metadata: languageName: node linkType: hard +"make-dir@npm:^3.1.0": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" + dependencies: + semver: ^6.0.0 + checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 + languageName: node + linkType: hard + "make-dir@npm:^4.0.0": version: 4.0.0 resolution: "make-dir@npm:4.0.0" @@ -11307,6 +13160,13 @@ __metadata: languageName: node linkType: hard +"map-cache@npm:^0.2.0": + version: 0.2.2 + resolution: "map-cache@npm:0.2.2" + checksum: 3067cea54285c43848bb4539f978a15dedc63c03022abeec6ef05c8cb6829f920f13b94bcaf04142fc6a088318e564c4785704072910d120d55dbc2e0c421969 + languageName: node + linkType: hard + "material-design-icons@npm:3.0.1": version: 3.0.1 resolution: "material-design-icons@npm:3.0.1" @@ -11627,6 +13487,15 @@ __metadata: languageName: node linkType: hard +"mkdirp@npm:^3.0.0": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 972deb188e8fb55547f1e58d66bd6b4a3623bf0c7137802582602d73e6480c1c2268dcbafbfb1be466e00cc7e56ac514d7fd9334b7cf33e3e2ab547c16f83a8d + languageName: node + linkType: hard + "mrmime@npm:1.0.1": version: 1.0.1 resolution: "mrmime@npm:1.0.1" @@ -11694,6 +13563,15 @@ __metadata: languageName: node linkType: hard +"nan@npm:2.18.0": + version: 2.18.0 + resolution: "nan@npm:2.18.0" + dependencies: + node-gyp: latest + checksum: 4fe42f58456504eab3105c04a5cffb72066b5f22bd45decf33523cb17e7d6abc33cca2a19829407b9000539c5cb25f410312d4dc5b30220167a3594896ea6a0a + languageName: node + linkType: hard + "nanoid@npm:^3.3.6, nanoid@npm:^3.3.7": version: 3.3.7 resolution: "nanoid@npm:3.3.7" @@ -11787,6 +13665,16 @@ __metadata: languageName: node linkType: hard +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: ^2.0.2 + tslib: ^2.0.3 + checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c + languageName: node + linkType: hard + "node-addon-api@npm:^3.0.0": version: 3.2.1 resolution: "node-addon-api@npm:3.2.1" @@ -11796,6 +13684,20 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5 + languageName: node + linkType: hard + "node-forge@npm:^1": version: 1.3.1 resolution: "node-forge@npm:1.3.1" @@ -11862,6 +13764,21 @@ __metadata: languageName: node linkType: hard +"node-libcurl@npm:^4.0.0": + version: 4.0.0 + resolution: "node-libcurl@npm:4.0.0" + dependencies: + "@mapbox/node-pre-gyp": 1.0.11 + env-paths: 2.2.0 + nan: 2.18.0 + node-gyp: 10.0.1 + npmlog: 7.0.1 + rimraf: 5.0.5 + tslib: 2.6.2 + checksum: d0893c9ebc3e3cd2961752f0de244a5bb86af3031cb375535d0d72eccdf2f35cb7fe6f36d39c8ba380cb5e0199562df4be9c5d71b80f6e61a531dc934be75b3c + languageName: node + linkType: hard + "node-releases@npm:^2.0.14": version: 2.0.14 resolution: "node-releases@npm:2.0.14" @@ -11869,6 +13786,17 @@ __metadata: languageName: node linkType: hard +"nopt@npm:^5.0.0": + version: 5.0.0 + resolution: "nopt@npm:5.0.0" + dependencies: + abbrev: 1 + bin: + nopt: bin/nopt.js + checksum: d35fdec187269503843924e0114c0c6533fb54bbf1620d0f28b4b60ba01712d6687f62565c55cc20a504eff0fbe5c63e22340c3fad549ad40469ffb611b04f2f + languageName: node + linkType: hard + "nopt@npm:^6.0.0": version: 6.0.0 resolution: "nopt@npm:6.0.0" @@ -11903,6 +13831,15 @@ __metadata: languageName: node linkType: hard +"normalize-path@npm:^2.1.1": + version: 2.1.1 + resolution: "normalize-path@npm:2.1.1" + dependencies: + remove-trailing-separator: ^1.0.1 + checksum: 7e9cbdcf7f5b8da7aa191fbfe33daf290cdcd8c038f422faf1b8a83c972bf7a6d94c5be34c4326cb00fb63bc0fd97d9fbcfaf2e5d6142332c2cd36d2e1b86cea + languageName: node + linkType: hard + "normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" @@ -12027,6 +13964,30 @@ __metadata: languageName: node linkType: hard +"npmlog@npm:7.0.1": + version: 7.0.1 + resolution: "npmlog@npm:7.0.1" + dependencies: + are-we-there-yet: ^4.0.0 + console-control-strings: ^1.1.0 + gauge: ^5.0.0 + set-blocking: ^2.0.0 + checksum: caabeb1f557c1094ad7ed3275b968b83ccbaefc133f17366ebb9fe8eb44e1aace28c31419d6244bfc0422aede1202875d555fe6661978bf04386f6cf617f43a4 + languageName: node + linkType: hard + +"npmlog@npm:^5.0.1": + version: 5.0.1 + resolution: "npmlog@npm:5.0.1" + dependencies: + are-we-there-yet: ^2.0.0 + console-control-strings: ^1.1.0 + gauge: ^3.0.0 + set-blocking: ^2.0.0 + checksum: 516b2663028761f062d13e8beb3f00069c5664925871a9b57989642ebe09f23ab02145bf3ab88da7866c4e112cafff72401f61a672c7c8a20edc585a7016ef5f + languageName: node + linkType: hard + "npmlog@npm:^6.0.0": version: 6.0.2 resolution: "npmlog@npm:6.0.2" @@ -12048,6 +14009,13 @@ __metadata: languageName: node linkType: hard +"nullthrows@npm:^1.1.1": + version: 1.1.1 + resolution: "nullthrows@npm:1.1.1" + checksum: 10806b92121253eb1b08ecf707d92480f5331ba8ae5b23fa3eb0548ad24196eb797ed47606153006568a5733ea9e528a3579f21421f7828e09e7756f4bdd386f + languageName: node + linkType: hard + "nwsapi@npm:^2.2.0, nwsapi@npm:^2.2.2": version: 2.2.7 resolution: "nwsapi@npm:2.2.7" @@ -12055,6 +14023,20 @@ __metadata: languageName: node linkType: hard +"object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-inspect@npm:1.12.3": + version: 1.12.3 + resolution: "object-inspect@npm:1.12.3" + checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db + languageName: node + linkType: hard + "object-inspect@npm:^1.13.1": version: 1.13.1 resolution: "object-inspect@npm:1.13.1" @@ -12142,7 +14124,7 @@ __metadata: languageName: node linkType: hard -"open@npm:^7.3.1": +"open@npm:^7.3.1, open@npm:^7.4.2": version: 7.4.2 resolution: "open@npm:7.4.2" dependencies: @@ -12152,6 +14134,13 @@ __metadata: languageName: node linkType: hard +"openapi-types@npm:^12.1.0": + version: 12.1.3 + resolution: "openapi-types@npm:12.1.3" + checksum: 7fa5547f87a58d2aa0eba6e91d396f42d7d31bc3ae140e61b5d60b47d2fd068b48776f42407d5a8da7280cf31195aa128c2fc285e8bb871d1105edee5647a0bb + languageName: node + linkType: hard + "opener@npm:^1.5.2": version: 1.5.2 resolution: "opener@npm:1.5.2" @@ -12206,6 +14195,15 @@ __metadata: languageName: node linkType: hard +"p-limit@npm:3.1.0, p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + "p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" @@ -12215,15 +14213,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 - languageName: node - linkType: hard - "p-limit@npm:^4.0.0": version: 4.0.0 resolution: "p-limit@npm:4.0.0" @@ -12350,6 +14339,16 @@ __metadata: languageName: node linkType: hard +"param-case@npm:^3.0.4": + version: 3.0.4 + resolution: "param-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: b34227fd0f794e078776eb3aa6247442056cb47761e9cd2c4c881c86d84c64205f6a56ef0d70b41ee7d77da02c3f4ed2f88e3896a8fefe08bdfb4deca037c687 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -12359,6 +14358,17 @@ __metadata: languageName: node linkType: hard +"parse-filepath@npm:^1.0.2": + version: 1.0.2 + resolution: "parse-filepath@npm:1.0.2" + dependencies: + is-absolute: ^1.0.0 + map-cache: ^0.2.0 + path-root: ^0.1.1 + checksum: 6794c3f38d3921f0f7cc63fb1fb0c4d04cd463356ad389c8ce6726d3c50793b9005971f4138975a6d7025526058d5e65e9bfe634d0765e84c4e2571152665a69 + languageName: node + linkType: hard + "parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -12428,6 +14438,33 @@ __metadata: languageName: node linkType: hard +"pascal-case@npm:3.1.2, pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e + languageName: node + linkType: hard + +"path-browserify@npm:1.0.1": + version: 1.0.1 + resolution: "path-browserify@npm:1.0.1" + checksum: c6d7fa376423fe35b95b2d67990060c3ee304fc815ff0a2dc1c6c3cfaff2bd0d572ee67e18f19d0ea3bbe32e8add2a05021132ac40509416459fffee35200699 + languageName: node + linkType: hard + +"path-case@npm:^3.0.4": + version: 3.0.4 + resolution: "path-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 61de0526222629f65038a66f63330dd22d5b54014ded6636283e1d15364da38b3cf29e4433aa3f9d8b0dba407ae2b059c23b0104a34ee789944b1bc1c5c7e06d + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -12477,6 +14514,22 @@ __metadata: languageName: node linkType: hard +"path-root-regex@npm:^0.1.0": + version: 0.1.2 + resolution: "path-root-regex@npm:0.1.2" + checksum: dcd75d1f8e93faabe35a58e875b0f636839b3658ff2ad8c289463c40bc1a844debe0dab73c3398ef9dc8f6ec6c319720aff390cf4633763ddcf3cf4b1bbf7e8b + languageName: node + linkType: hard + +"path-root@npm:^0.1.1": + version: 0.1.1 + resolution: "path-root@npm:0.1.1" + dependencies: + path-root-regex: ^0.1.0 + checksum: ff88aebfc1c59ace510cc06703d67692a11530989920427625e52b66a303ca9b3d4059b0b7d0b2a73248d1ad29bcb342b8b786ec00592f3101d38a45fd3b2e08 + languageName: node + linkType: hard + "path-scurry@npm:^1.10.1": version: 1.10.1 resolution: "path-scurry@npm:1.10.1" @@ -12834,6 +14887,15 @@ __metadata: languageName: node linkType: hard +"promise@npm:^7.1.1": + version: 7.3.1 + resolution: "promise@npm:7.3.1" + dependencies: + asap: ~2.0.3 + checksum: 475bb069130179fbd27ed2ab45f26d8862376a137a57314cf53310bdd85cc986a826fd585829be97ebc0aaf10e9d8e68be1bfe5a4a0364144b1f9eedfa940cf1 + languageName: node + linkType: hard + "prompts@npm:^2.0.1, prompts@npm:~2.4.2": version: 2.4.2 resolution: "prompts@npm:2.4.2" @@ -12931,6 +14993,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:6.12.0": + version: 6.12.0 + resolution: "qs@npm:6.12.0" + dependencies: + side-channel: ^1.0.6 + checksum: ba007fb2488880b9c6c3df356fe6888b9c1f4c5127552edac214486cfe83a332de09a5c40d490d79bb27bef977ba1085a8497512ff52eaac72e26564f77ce908 + languageName: node + linkType: hard + "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -13158,6 +15229,24 @@ __metadata: languageName: node linkType: hard +"relay-runtime@npm:12.0.0": + version: 12.0.0 + resolution: "relay-runtime@npm:12.0.0" + dependencies: + "@babel/runtime": ^7.0.0 + fbjs: ^3.0.0 + invariant: ^2.2.4 + checksum: 51cdc8a5e04188982452ae4e7c6ac7d6375ee769130d24ce8e8f9cdd45aa7e11ecd68670f56e30dcee1b4974585e88ecce19e69a9868b80cda0db7678c3b8f0a + languageName: node + linkType: hard + +"remove-trailing-separator@npm:^1.0.1": + version: 1.1.0 + resolution: "remove-trailing-separator@npm:1.1.0" + checksum: d3c20b5a2d987db13e1cca9385d56ecfa1641bae143b620835ac02a6b70ab88f68f117a0021838db826c57b31373d609d52e4f31aca75fc490c862732d595419 + languageName: node + linkType: hard + "request-progress@npm:^3.0.0": version: 3.0.0 resolution: "request-progress@npm:3.0.0" @@ -13211,6 +15300,13 @@ __metadata: languageName: node linkType: hard +"resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -13218,13 +15314,6 @@ __metadata: languageName: node linkType: hard -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf - languageName: node - linkType: hard - "resolve-url-loader@npm:5.0.0": version: 5.0.0 resolution: "resolve-url-loader@npm:5.0.0" @@ -13345,6 +15434,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:5.0.5, rimraf@npm:^5.0.0, rimraf@npm:^5.0.5": + version: 5.0.5 + resolution: "rimraf@npm:5.0.5" + dependencies: + glob: ^10.3.7 + bin: + rimraf: dist/esm/bin.mjs + checksum: d66eef829b2e23b16445f34e73d75c7b7cf4cbc8834b04720def1c8f298eb0753c3d76df77325fad79d0a2c60470525d95f89c2475283ad985fd7441c32732d1 + languageName: node + linkType: hard + "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -13356,17 +15456,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^5.0.5": - version: 5.0.5 - resolution: "rimraf@npm:5.0.5" - dependencies: - glob: ^10.3.7 - bin: - rimraf: dist/esm/bin.mjs - checksum: d66eef829b2e23b16445f34e73d75c7b7cf4cbc8834b04720def1c8f298eb0753c3d76df77325fad79d0a2c60470525d95f89c2475283ad985fd7441c32732d1 - languageName: node - linkType: hard - "rimraf@npm:~2.6.2": version: 2.6.3 resolution: "rimraf@npm:2.6.3" @@ -13675,7 +15764,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.1.0, semver@npm:^6.3.0, semver@npm:^6.3.1": +"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -13705,6 +15794,17 @@ __metadata: languageName: node linkType: hard +"sentence-case@npm:^3.0.4": + version: 3.0.4 + resolution: "sentence-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 3cfe6c0143e649132365695706702d7f729f484fa7b25f43435876efe7af2478243eefb052bacbcce10babf9319fd6b5b6bc59b94c80a1c819bcbb40651465d5 + languageName: node + linkType: hard + "serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.1": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" @@ -13762,6 +15862,13 @@ __metadata: languageName: node linkType: hard +"setimmediate@npm:^1.0.5": + version: 1.0.5 + resolution: "setimmediate@npm:1.0.5" + checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd + languageName: node + linkType: hard + "setprototypeof@npm:1.1.0": version: 1.1.0 resolution: "setprototypeof@npm:1.1.0" @@ -13808,7 +15915,7 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": +"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": version: 1.0.6 resolution: "side-channel@npm:1.0.6" dependencies: @@ -13820,7 +15927,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 @@ -13834,6 +15941,13 @@ __metadata: languageName: node linkType: hard +"signedsource@npm:^1.0.0": + version: 1.0.0 + resolution: "signedsource@npm:1.0.0" + checksum: 64b2c8d7a48de9009cfd3aff62bb7c88abf3b8e0421f17ebb1d7f5ca9cc9c3ad10f5a1e3ae6cd804e4e6121c87b668202ae9057065f058ddfbf34ea65f63945d + languageName: node + linkType: hard + "sigstore@npm:^1.3.0": version: 1.9.0 resolution: "sigstore@npm:1.9.0" @@ -13930,6 +16044,16 @@ __metadata: languageName: node linkType: hard +"snake-case@npm:^3.0.4": + version: 3.0.4 + resolution: "snake-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 0a7a79900bbb36f8aaa922cf111702a3647ac6165736d5dc96d3ef367efc50465cac70c53cd172c382b022dac72ec91710608e5393de71f76d7142e6fd80e8a3 + languageName: node + linkType: hard + "sockjs-client@npm:1.6.1": version: 1.6.1 resolution: "sockjs-client@npm:1.6.1" @@ -14147,6 +16271,15 @@ __metadata: languageName: node linkType: hard +"sponge-case@npm:^1.0.1": + version: 1.0.1 + resolution: "sponge-case@npm:1.0.1" + dependencies: + tslib: ^2.0.3 + checksum: 64f53d930f63c5a9e59d4cae487c1ffa87d25eab682833b01d572cc885e7e3fdbad4f03409a41f03ecb27f1f8959432253eb48332c7007c3388efddb24ba2792 + languageName: node + linkType: hard + "sprintf-js@npm:^1.1.2, sprintf-js@npm:^1.1.3": version: 1.1.3 resolution: "sprintf-js@npm:1.1.3" @@ -14230,6 +16363,13 @@ __metadata: languageName: node linkType: hard +"streamsearch@npm:^1.1.0": + version: 1.1.0 + resolution: "streamsearch@npm:1.1.0" + checksum: 1cce16cea8405d7a233d32ca5e00a00169cc0e19fbc02aa839959985f267335d435c07f96e5e0edd0eadc6d39c98d5435fb5bbbdefc62c41834eadc5622ad942 + languageName: node + linkType: hard + "string-argv@npm:0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" @@ -14247,6 +16387,13 @@ __metadata: languageName: node linkType: hard +"string-similarity@npm:^4.0.1": + version: 4.0.4 + resolution: "string-similarity@npm:4.0.4" + checksum: 797b41b24e1eb6b3b0ab896950b58c295a19a82933479c75f7b5279ffb63e0b456a8c8d10329c02f607ca1a50370e961e83d552aa468ff3b0fa15809abc9eff7 + languageName: node + linkType: hard + "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -14343,6 +16490,13 @@ __metadata: languageName: node linkType: hard +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + "strip-bom@npm:^4.0.0": version: 4.0.0 resolution: "strip-bom@npm:4.0.0" @@ -14574,6 +16728,15 @@ __metadata: languageName: node linkType: hard +"swap-case@npm:^2.0.2": + version: 2.0.2 + resolution: "swap-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 6e21c9e1b3cd5735eb2af679a99ec3efc78a14e3d4d5e3fd594e254b91cfd37185b3d1c6e41b22f53a2cdf5d1b963ce30c0fe8b78337e3fd43d0137084670a5f + languageName: node + linkType: hard + "symbol-observable@npm:4.0.0": version: 4.0.0 resolution: "symbol-observable@npm:4.0.0" @@ -14757,6 +16920,22 @@ __metadata: languageName: node linkType: hard +"tiny-lru@npm:^11.0.0": + version: 11.2.5 + resolution: "tiny-lru@npm:11.2.5" + checksum: faced7e5b11936d83b40fb743d1630a52da9f7f7341d6656c139bdea76726bff2318f9b30a722140eec2885ea8bc5ed6507ed5a1acba0fbbe88f2b8fa3660dd3 + languageName: node + linkType: hard + +"title-case@npm:^3.0.3": + version: 3.0.3 + resolution: "title-case@npm:3.0.3" + dependencies: + tslib: ^2.0.3 + checksum: e8b7ea006b53cf3208d278455d9f1e22c409459d7f9878da324fa3b18cc0aef8560924c19c744e870394a5d9cddfdbe029ebae9875909ee7f4fc562e7cbfc53e + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -14787,6 +16966,20 @@ __metadata: languageName: node linkType: hard +"to-json-schema@npm:0.2.5": + version: 0.2.5 + resolution: "to-json-schema@npm:0.2.5" + dependencies: + lodash.isequal: ^4.5.0 + lodash.keys: ^4.2.0 + lodash.merge: ^4.6.2 + lodash.omit: ^4.5.0 + lodash.without: ^4.4.0 + lodash.xor: ^4.5.0 + checksum: eaedd574b067985946614bfab10d211c6ff1cfdd97e852e04636693e3b771f2785e992a31528ef2e55e498ef307e7aac9daf01d23151e4e45cacb6cfc4357552 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -14840,6 +17033,13 @@ __metadata: languageName: node linkType: hard +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 + languageName: node + linkType: hard + "tree-kill@npm:1.2.2, tree-kill@npm:^1.2.2": version: 1.2.2 resolution: "tree-kill@npm:1.2.2" @@ -14907,7 +17107,7 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:10.9.2": +"ts-node@npm:10.9.2, ts-node@npm:^10.9.1": version: 10.9.2 resolution: "ts-node@npm:10.9.2" dependencies: @@ -14945,6 +17145,17 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:^4.2.0": + version: 4.2.0 + resolution: "tsconfig-paths@npm:4.2.0" + dependencies: + json5: ^2.2.2 + minimist: ^1.2.6 + strip-bom: ^3.0.0 + checksum: 28c5f7bbbcabc9dabd4117e8fdc61483f6872a1c6b02a4b1c4d68c5b79d06896c3cc9547610c4c3ba64658531caa2de13ead1ea1bf321c7b53e969c4752b98c7 + languageName: node + linkType: hard + "tslib@npm:2.6.1": version: 2.6.1 resolution: "tslib@npm:2.6.1" @@ -14952,7 +17163,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.6.2, tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.6.2": +"tslib@npm:2.6.2, tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.5.2, tslib@npm:^2.6.2, tslib@npm:~2.6.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad @@ -14966,6 +17177,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:~2.4.0": + version: 2.4.1 + resolution: "tslib@npm:2.4.1" + checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca + languageName: node + linkType: hard + "tsutils-etc@npm:^1.4.1": version: 1.4.2 resolution: "tsutils-etc@npm:1.4.2" @@ -15084,6 +17302,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:^5.0.4": + version: 5.4.2 + resolution: "typescript@npm:5.4.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 96d80fde25a09bcb04d399082fb27a808a9e17c2111e43849d2aafbd642d835e4f4ef0de09b0ba795ec2a700be6c4c2c3f62bf4660c05404c948727b5bbfb32a + languageName: node + linkType: hard + "typescript@patch:typescript@5.1.6#~builtin": version: 5.1.6 resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=d73830" @@ -15094,6 +17322,37 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@^5.0.4#~builtin": + version: 5.4.2 + resolution: "typescript@patch:typescript@npm%3A5.4.2#~builtin::version=5.4.2&hash=d73830" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: c1b669146bca5529873aae60870e243fa8140c85f57ca32c42f898f586d73ce4a6b4f6bb02ae312729e214d7f5859a0c70da3e527a116fdf5ad00c9fc733ecc6 + languageName: node + linkType: hard + +"uWebSockets.js@github:uNetworking/uWebSockets.js#semver:^20": + version: 20.42.0 + resolution: "uWebSockets.js@https://github.com/uNetworking/uWebSockets.js.git#commit=f40213ec0a97d0d8721d9d32d92d6eb6ddcd22e7" + checksum: 9732bee8b5d3ff2a25bfe7e7cdb3c7094b47f5a7db1378e943f95301fe34f4f60cc34ff3cdaf28e40202caa172ff94d69dc5076fb7aa7b977609cfc27d76d8ba + languageName: node + linkType: hard + +"ua-parser-js@npm:^1.0.35": + version: 1.0.37 + resolution: "ua-parser-js@npm:1.0.37" + checksum: 4d481c720d523366d7762dc8a46a1b58967d979aacf786f9ceceb1cd767de069f64a4bdffb63956294f1c0696eb465ddb950f28ba90571709e33521b4bd75e07 + languageName: node + linkType: hard + +"unc-path-regex@npm:^0.1.2": + version: 0.1.2 + resolution: "unc-path-regex@npm:0.1.2" + checksum: a05fa2006bf4606051c10fc7968f08ce7b28fa646befafa282813aeb1ac1a56f65cb1b577ca7851af2726198d59475bb49b11776036257b843eaacee2860a4ec + languageName: node + linkType: hard + "undici-types@npm:~5.26.4": version: 5.26.5 resolution: "undici-types@npm:5.26.5" @@ -15189,6 +17448,15 @@ __metadata: languageName: node linkType: hard +"unixify@npm:^1.0.0": + version: 1.0.0 + resolution: "unixify@npm:1.0.0" + dependencies: + normalize-path: ^2.1.1 + checksum: 3be30e48579fc6c7390bd59b4ab9e745fede0c164dfb7351cf710bd1dbef8484b1441186205af6bcb13b731c0c88caf9b33459f7bf8c89e79c046e656ae433f0 + languageName: node + linkType: hard + "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" @@ -15217,6 +17485,24 @@ __metadata: languageName: node linkType: hard +"upper-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 4487db4701effe3b54ced4b3e4aa4d9ab06c548f97244d04aafb642eedf96a76d5a03cf5f38f10f415531d5792d1ac6e1b50f2a76984dc6964ad530f12876409 + languageName: node + linkType: hard + +"upper-case@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 508723a2b03ab90cf1d6b7e0397513980fab821cbe79c87341d0e96cedefadf0d85f9d71eac24ab23f526a041d585a575cfca120a9f920e44eb4f8a7cf89121c + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -15226,6 +17512,13 @@ __metadata: languageName: node linkType: hard +"url-join@npm:4.0.1": + version: 4.0.1 + resolution: "url-join@npm:4.0.1" + checksum: f74e868bf25dbc8be6a8d7237d4c36bb5b6c62c72e594d5ab1347fe91d6af7ccd9eb5d621e30152e4da45c2e9a26bec21390e911ab54a62d4d82e76028374ee5 + languageName: node + linkType: hard + "url-parse@npm:^1.5.10, url-parse@npm:^1.5.3": version: 1.5.10 resolution: "url-parse@npm:1.5.10" @@ -15236,6 +17529,13 @@ __metadata: languageName: node linkType: hard +"urlpattern-polyfill@npm:^10.0.0": + version: 10.0.0 + resolution: "urlpattern-polyfill@npm:10.0.0" + checksum: 61d890f151ea4ecf34a3dcab32c65ad1f3cda857c9d154af198260c6e5b2ad96d024593409baaa6d4428dd1ab206c14799bf37fe011117ac93a6a44913ac5aa4 + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -15296,6 +17596,13 @@ __metadata: languageName: node linkType: hard +"value-or-promise@npm:^1.0.11, value-or-promise@npm:^1.0.12": + version: 1.0.12 + resolution: "value-or-promise@npm:1.0.12" + checksum: f53a66c75b7447c90bbaf946a757ca09c094629cb80ba742f59c980ec3a69be0a385a0e75505dedb4e757862f1a994ca4beaf083a831f24d3ffb3d4bb18cd1e1 + languageName: node + linkType: hard + "vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" @@ -15440,6 +17747,13 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c + languageName: node + linkType: hard + "webidl-conversions@npm:^5.0.0": version: 5.0.0 resolution: "webidl-conversions@npm:5.0.0" @@ -15795,6 +18109,16 @@ __metadata: languageName: node linkType: hard +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: ~0.0.3 + webidl-conversions: ^3.0.0 + checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c + languageName: node + linkType: hard + "whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": version: 8.7.0 resolution: "whatwg-url@npm:8.7.0" @@ -15857,7 +18181,7 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.5": +"wide-align@npm:^1.1.2, wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" dependencies: @@ -16083,6 +18407,16 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^18.1.2": + version: 18.1.3 + resolution: "yargs-parser@npm:18.1.3" + dependencies: + camelcase: ^5.0.0 + decamelize: ^1.2.0 + checksum: 60e8c7d1b85814594d3719300ecad4e6ae3796748b0926137bfec1f3042581b8646d67e83c6fc80a692ef08b8390f21ddcacb9464476c39bbdf52e34961dd4d9 + languageName: node + linkType: hard + "yargs-parser@npm:^20.2.2": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" @@ -16130,6 +18464,25 @@ __metadata: languageName: node linkType: hard +"yargs@npm:^15.3.1": + version: 15.4.1 + resolution: "yargs@npm:15.4.1" + dependencies: + cliui: ^6.0.0 + decamelize: ^1.2.0 + find-up: ^4.1.0 + get-caller-file: ^2.0.1 + require-directory: ^2.1.1 + require-main-filename: ^2.0.0 + set-blocking: ^2.0.0 + string-width: ^4.2.0 + which-module: ^2.0.0 + y18n: ^4.0.0 + yargs-parser: ^18.1.2 + checksum: 40b974f508d8aed28598087720e086ecd32a5fd3e945e95ea4457da04ee9bdb8bdd17fd91acff36dc5b7f0595a735929c514c40c402416bbb87c03f6fb782373 + languageName: node + linkType: hard + "yargs@npm:^16.2.0": version: 16.2.0 resolution: "yargs@npm:16.2.0"